1
0
Fork 0
sqlglot/docs/sqlglot/expressions.html
Daniel Baumann fc63828ee4
Merging upstream version 15.0.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-02-13 15:57:23 +01:00

51263 lines
No EOL
5.2 MiB

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="generator" content="pdoc 13.1.1"/>
<title>sqlglot.expressions API documentation</title>
<style>/*! * Bootstrap Reboot v5.0.0 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}</style>
<style>/*! syntax-highlighting.css */pre{line-height:125%;}span.linenos{color:inherit; background-color:transparent; padding-left:5px; padding-right:20px;}.pdoc-code .hll{background-color:#ffffcc}.pdoc-code{background:#f8f8f8;}.pdoc-code .c{color:#3D7B7B; font-style:italic}.pdoc-code .err{border:1px solid #FF0000}.pdoc-code .k{color:#008000; font-weight:bold}.pdoc-code .o{color:#666666}.pdoc-code .ch{color:#3D7B7B; font-style:italic}.pdoc-code .cm{color:#3D7B7B; font-style:italic}.pdoc-code .cp{color:#9C6500}.pdoc-code .cpf{color:#3D7B7B; font-style:italic}.pdoc-code .c1{color:#3D7B7B; font-style:italic}.pdoc-code .cs{color:#3D7B7B; font-style:italic}.pdoc-code .gd{color:#A00000}.pdoc-code .ge{font-style:italic}.pdoc-code .gr{color:#E40000}.pdoc-code .gh{color:#000080; font-weight:bold}.pdoc-code .gi{color:#008400}.pdoc-code .go{color:#717171}.pdoc-code .gp{color:#000080; font-weight:bold}.pdoc-code .gs{font-weight:bold}.pdoc-code .gu{color:#800080; font-weight:bold}.pdoc-code .gt{color:#0044DD}.pdoc-code .kc{color:#008000; font-weight:bold}.pdoc-code .kd{color:#008000; font-weight:bold}.pdoc-code .kn{color:#008000; font-weight:bold}.pdoc-code .kp{color:#008000}.pdoc-code .kr{color:#008000; font-weight:bold}.pdoc-code .kt{color:#B00040}.pdoc-code .m{color:#666666}.pdoc-code .s{color:#BA2121}.pdoc-code .na{color:#687822}.pdoc-code .nb{color:#008000}.pdoc-code .nc{color:#0000FF; font-weight:bold}.pdoc-code .no{color:#880000}.pdoc-code .nd{color:#AA22FF}.pdoc-code .ni{color:#717171; font-weight:bold}.pdoc-code .ne{color:#CB3F38; font-weight:bold}.pdoc-code .nf{color:#0000FF}.pdoc-code .nl{color:#767600}.pdoc-code .nn{color:#0000FF; font-weight:bold}.pdoc-code .nt{color:#008000; font-weight:bold}.pdoc-code .nv{color:#19177C}.pdoc-code .ow{color:#AA22FF; font-weight:bold}.pdoc-code .w{color:#bbbbbb}.pdoc-code .mb{color:#666666}.pdoc-code .mf{color:#666666}.pdoc-code .mh{color:#666666}.pdoc-code .mi{color:#666666}.pdoc-code .mo{color:#666666}.pdoc-code .sa{color:#BA2121}.pdoc-code .sb{color:#BA2121}.pdoc-code .sc{color:#BA2121}.pdoc-code .dl{color:#BA2121}.pdoc-code .sd{color:#BA2121; font-style:italic}.pdoc-code .s2{color:#BA2121}.pdoc-code .se{color:#AA5D1F; font-weight:bold}.pdoc-code .sh{color:#BA2121}.pdoc-code .si{color:#A45A77; font-weight:bold}.pdoc-code .sx{color:#008000}.pdoc-code .sr{color:#A45A77}.pdoc-code .s1{color:#BA2121}.pdoc-code .ss{color:#19177C}.pdoc-code .bp{color:#008000}.pdoc-code .fm{color:#0000FF}.pdoc-code .vc{color:#19177C}.pdoc-code .vg{color:#19177C}.pdoc-code .vi{color:#19177C}.pdoc-code .vm{color:#19177C}.pdoc-code .il{color:#666666}</style>
<style>/*! theme.css */:root{--pdoc-background:#fff;}.pdoc{--text:#212529;--muted:#6c757d;--link:#3660a5;--link-hover:#1659c5;--code:#f8f8f8;--active:#fff598;--accent:#eee;--accent2:#c1c1c1;--nav-hover:rgba(255, 255, 255, 0.5);--name:#0066BB;--def:#008800;--annotation:#007020;}</style>
<style>/*! layout.css */html, body{width:100%;height:100%;}html, main{scroll-behavior:smooth;}body{background-color:var(--pdoc-background);}@media (max-width:769px){#navtoggle{cursor:pointer;position:absolute;width:50px;height:40px;top:1rem;right:1rem;border-color:var(--text);color:var(--text);display:flex;opacity:0.8;z-index:999;}#navtoggle:hover{opacity:1;}#togglestate + div{display:none;}#togglestate:checked + div{display:inherit;}main, header{padding:2rem 3vw;}header + main{margin-top:-3rem;}.git-button{display:none !important;}nav input[type="search"]{max-width:77%;}nav input[type="search"]:first-child{margin-top:-6px;}nav input[type="search"]:valid ~ *{display:none !important;}}@media (min-width:770px){:root{--sidebar-width:clamp(12.5rem, 28vw, 22rem);}nav{position:fixed;overflow:auto;height:100vh;width:var(--sidebar-width);}main, header{padding:3rem 2rem 3rem calc(var(--sidebar-width) + 3rem);width:calc(54rem + var(--sidebar-width));max-width:100%;}header + main{margin-top:-4rem;}#navtoggle{display:none;}}#togglestate{position:absolute;height:0;opacity:0;}nav.pdoc{--pad:clamp(0.5rem, 2vw, 1.75rem);--indent:1.5rem;background-color:var(--accent);border-right:1px solid var(--accent2);box-shadow:0 0 20px rgba(50, 50, 50, .2) inset;padding:0 0 0 var(--pad);overflow-wrap:anywhere;scrollbar-width:thin; scrollbar-color:var(--accent2) transparent }nav.pdoc::-webkit-scrollbar{width:.4rem; }nav.pdoc::-webkit-scrollbar-thumb{background-color:var(--accent2); }nav.pdoc > div{padding:var(--pad) 0;}nav.pdoc .module-list-button{display:inline-flex;align-items:center;color:var(--text);border-color:var(--muted);margin-bottom:1rem;}nav.pdoc .module-list-button:hover{border-color:var(--text);}nav.pdoc input[type=search]{display:block;outline-offset:0;width:calc(100% - var(--pad));}nav.pdoc .logo{max-width:calc(100% - var(--pad));max-height:35vh;display:block;margin:0 auto 1rem;transform:translate(calc(-.5 * var(--pad)), 0);}nav.pdoc ul{list-style:none;padding-left:0;}nav.pdoc > div > ul{margin-left:calc(0px - var(--pad));}nav.pdoc li a{padding:.2rem 0 .2rem calc(var(--pad) + var(--indent));}nav.pdoc > div > ul > li > a{padding-left:var(--pad);}nav.pdoc li{transition:all 100ms;}nav.pdoc li:hover{background-color:var(--nav-hover);}nav.pdoc a, nav.pdoc a:hover{color:var(--text);}nav.pdoc a{display:block;}nav.pdoc > h2:first-of-type{margin-top:1.5rem;}nav.pdoc .class:before{content:"class ";color:var(--muted);}nav.pdoc .function:after{content:"()";color:var(--muted);}nav.pdoc footer:before{content:"";display:block;width:calc(100% - var(--pad));border-top:solid var(--accent2) 1px;margin-top:1.5rem;padding-top:.5rem;}nav.pdoc footer{font-size:small;}</style>
<style>/*! content.css */.pdoc{color:var(--text);box-sizing:border-box;line-height:1.5;background:none;}.pdoc .pdoc-button{cursor:pointer;display:inline-block;border:solid black 1px;border-radius:2px;font-size:.75rem;padding:calc(0.5em - 1px) 1em;transition:100ms all;}.pdoc .pdoc-alert{padding:1rem 1rem 1rem calc(1.5rem + 24px);border:1px solid transparent;border-radius:.25rem;background-repeat:no-repeat;background-position:1rem center;margin-bottom:1rem;}.pdoc .pdoc-alert > *:last-child{margin-bottom:0;}.pdoc .pdoc-alert-note {color:#084298;background-color:#cfe2ff;border-color:#b6d4fe;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23084298%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M8%2016A8%208%200%201%200%208%200a8%208%200%200%200%200%2016zm.93-9.412-1%204.705c-.07.34.029.533.304.533.194%200%20.487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703%200-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381%202.29-.287zM8%205.5a1%201%200%201%201%200-2%201%201%200%200%201%200%202z%22/%3E%3C/svg%3E");}.pdoc .pdoc-alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23664d03%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M8.982%201.566a1.13%201.13%200%200%200-1.96%200L.165%2013.233c-.457.778.091%201.767.98%201.767h13.713c.889%200%201.438-.99.98-1.767L8.982%201.566zM8%205c.535%200%20.954.462.9.995l-.35%203.507a.552.552%200%200%201-1.1%200L7.1%205.995A.905.905%200%200%201%208%205zm.002%206a1%201%200%201%201%200%202%201%201%200%200%201%200-2z%22/%3E%3C/svg%3E");}.pdoc .pdoc-alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22%23842029%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20d%3D%22M5.52.359A.5.5%200%200%201%206%200h4a.5.5%200%200%201%20.474.658L8.694%206H12.5a.5.5%200%200%201%20.395.807l-7%209a.5.5%200%200%201-.873-.454L6.823%209.5H3.5a.5.5%200%200%201-.48-.641l2.5-8.5z%22/%3E%3C/svg%3E");}.pdoc .visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important;}.pdoc h1, .pdoc h2, .pdoc h3{font-weight:300;margin:.3em 0;padding:.2em 0;}.pdoc > section:not(.module-info) h1{font-size:1.5rem;font-weight:500;}.pdoc > section:not(.module-info) h2{font-size:1.4rem;font-weight:500;}.pdoc > section:not(.module-info) h3{font-size:1.3rem;font-weight:500;}.pdoc > section:not(.module-info) h4{font-size:1.2rem;}.pdoc > section:not(.module-info) h5{font-size:1.1rem;}.pdoc a{text-decoration:none;color:var(--link);}.pdoc a:hover{color:var(--link-hover);}.pdoc blockquote{margin-left:2rem;}.pdoc pre{border-top:1px solid var(--accent2);border-bottom:1px solid var(--accent2);margin-top:0;margin-bottom:1em;padding:.5rem 0 .5rem .5rem;overflow-x:auto;background-color:var(--code);}.pdoc code{color:var(--text);padding:.2em .4em;margin:0;font-size:85%;background-color:var(--code);border-radius:6px;}.pdoc a > code{color:inherit;}.pdoc pre > code{display:inline-block;font-size:inherit;background:none;border:none;padding:0;}.pdoc > section:not(.module-info){margin-bottom:1.5rem;}.pdoc .modulename{margin-top:0;font-weight:bold;}.pdoc .modulename a{color:var(--link);transition:100ms all;}.pdoc .git-button{float:right;border:solid var(--link) 1px;}.pdoc .git-button:hover{background-color:var(--link);color:var(--pdoc-background);}.view-source-toggle-state,.view-source-toggle-state ~ .pdoc-code{display:none;}.view-source-toggle-state:checked ~ .pdoc-code{display:block;}.view-source-button{display:inline-block;float:right;font-size:.75rem;line-height:1.5rem;color:var(--muted);padding:0 .4rem 0 1.3rem;cursor:pointer;text-indent:-2px;}.view-source-button > span{visibility:hidden;}.module-info .view-source-button{float:none;display:flex;justify-content:flex-end;margin:-1.2rem .4rem -.2rem 0;}.view-source-button::before{position:absolute;content:"View Source";display:list-item;list-style-type:disclosure-closed;}.view-source-toggle-state:checked ~ .attr .view-source-button::before,.view-source-toggle-state:checked ~ .view-source-button::before{list-style-type:disclosure-open;}.pdoc .docstring{margin-bottom:1.5rem;}.pdoc section:not(.module-info) .docstring{margin-left:clamp(0rem, 5vw - 2rem, 1rem);}.pdoc .docstring .pdoc-code{margin-left:1em;margin-right:1em;}.pdoc h1:target,.pdoc h2:target,.pdoc h3:target,.pdoc h4:target,.pdoc h5:target,.pdoc h6:target,.pdoc .pdoc-code > pre > span:target{background-color:var(--active);box-shadow:-1rem 0 0 0 var(--active);}.pdoc .pdoc-code > pre > span:target{display:block;}.pdoc div:target > .attr,.pdoc section:target > .attr,.pdoc dd:target > a{background-color:var(--active);}.pdoc *{scroll-margin:2rem;}.pdoc .pdoc-code .linenos{user-select:none;}.pdoc .attr:hover{filter:contrast(0.95);}.pdoc section, .pdoc .classattr{position:relative;}.pdoc .headerlink{--width:clamp(1rem, 3vw, 2rem);position:absolute;top:0;left:calc(0rem - var(--width));transition:all 100ms ease-in-out;opacity:0;}.pdoc .headerlink::before{content:"#";display:block;text-align:center;width:var(--width);height:2.3rem;line-height:2.3rem;font-size:1.5rem;}.pdoc .attr:hover ~ .headerlink,.pdoc *:target > .headerlink,.pdoc .headerlink:hover{opacity:1;}.pdoc .attr{display:block;margin:.5rem 0 .5rem;padding:.4rem .4rem .4rem 1rem;background-color:var(--accent);overflow-x:auto;}.pdoc .classattr{margin-left:2rem;}.pdoc .name{color:var(--name);font-weight:bold;}.pdoc .def{color:var(--def);font-weight:bold;}.pdoc .signature{background-color:transparent;}.pdoc .param, .pdoc .return-annotation{white-space:pre;}.pdoc .signature.multiline .param{display:block;}.pdoc .signature.condensed .param{display:inline-block;}.pdoc .annotation{color:var(--annotation);}.pdoc .view-value-toggle-state,.pdoc .view-value-toggle-state ~ .default_value{display:none;}.pdoc .view-value-toggle-state:checked ~ .default_value{display:inherit;}.pdoc .view-value-button{font-size:.5rem;vertical-align:middle;border-style:dashed;margin-top:-0.1rem;}.pdoc .view-value-button:hover{background:white;}.pdoc .view-value-button::before{content:"show";text-align:center;width:2.2em;display:inline-block;}.pdoc .view-value-toggle-state:checked ~ .view-value-button::before{content:"hide";}.pdoc .inherited{margin-left:2rem;}.pdoc .inherited dt{font-weight:700;}.pdoc .inherited dt, .pdoc .inherited dd{display:inline;margin-left:0;margin-bottom:.5rem;}.pdoc .inherited dd:not(:last-child):after{content:", ";}.pdoc .inherited .class:before{content:"class ";}.pdoc .inherited .function a:after{content:"()";}.pdoc .search-result .docstring{overflow:auto;max-height:25vh;}.pdoc .search-result.focused > .attr{background-color:var(--active);}.pdoc .attribution{margin-top:2rem;display:block;opacity:0.5;transition:all 200ms;filter:grayscale(100%);}.pdoc .attribution:hover{opacity:1;filter:grayscale(0%);}.pdoc .attribution img{margin-left:5px;height:35px;vertical-align:middle;width:70px;transition:all 200ms;}.pdoc table{display:block;width:max-content;max-width:100%;overflow:auto;margin-bottom:1rem;}.pdoc table th{font-weight:600;}.pdoc table th, .pdoc table td{padding:6px 13px;border:1px solid var(--accent2);}</style>
<style>/*! custom.css */</style></head>
<body>
<nav class="pdoc">
<label id="navtoggle" for="togglestate" class="pdoc-button"><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke-linecap='round' stroke="currentColor" stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg></label>
<input id="togglestate" type="checkbox" aria-hidden="true" tabindex="-1">
<div> <a class="pdoc-button module-list-button" href="../sqlglot.html">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-box-arrow-in-left" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="M10 3.5a.5.5 0 0 0-.5-.5h-8a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 .5.5h8a.5.5 0 0 0 .5-.5v-2a.5.5 0 0 1 1 0v2A1.5 1.5 0 0 1 9.5 14h-8A1.5 1.5 0 0 1 0 12.5v-9A1.5 1.5 0 0 1 1.5 2h8A1.5 1.5 0 0 1 11 3.5v2a.5.5 0 0 1-1 0v-2z"/>
<path fill-rule="evenodd" d="M4.146 8.354a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H14.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3z"/>
</svg> &nbsp;sqlglot</a>
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
pattern=".+" required>
<h2>Contents</h2>
<ul>
<li><a href="#expressions">Expressions</a></li>
</ul>
<h2>API Documentation</h2>
<ul class="memberlist">
<li>
<a class="class" href="#Expression">Expression</a>
<ul class="memberlist">
<li>
<a class="function" href="#Expression.__init__">Expression</a>
</li>
<li>
<a class="variable" href="#Expression.this">this</a>
</li>
<li>
<a class="variable" href="#Expression.expression">expression</a>
</li>
<li>
<a class="variable" href="#Expression.expressions">expressions</a>
</li>
<li>
<a class="function" href="#Expression.text">text</a>
</li>
<li>
<a class="variable" href="#Expression.is_string">is_string</a>
</li>
<li>
<a class="variable" href="#Expression.is_number">is_number</a>
</li>
<li>
<a class="variable" href="#Expression.is_int">is_int</a>
</li>
<li>
<a class="variable" href="#Expression.is_star">is_star</a>
</li>
<li>
<a class="variable" href="#Expression.alias">alias</a>
</li>
<li>
<a class="variable" href="#Expression.output_name">output_name</a>
</li>
<li>
<a class="function" href="#Expression.copy">copy</a>
</li>
<li>
<a class="function" href="#Expression.add_comments">add_comments</a>
</li>
<li>
<a class="function" href="#Expression.append">append</a>
</li>
<li>
<a class="function" href="#Expression.set">set</a>
</li>
<li>
<a class="variable" href="#Expression.depth">depth</a>
</li>
<li>
<a class="function" href="#Expression.iter_expressions">iter_expressions</a>
</li>
<li>
<a class="function" href="#Expression.find">find</a>
</li>
<li>
<a class="function" href="#Expression.find_all">find_all</a>
</li>
<li>
<a class="function" href="#Expression.find_ancestor">find_ancestor</a>
</li>
<li>
<a class="variable" href="#Expression.parent_select">parent_select</a>
</li>
<li>
<a class="variable" href="#Expression.same_parent">same_parent</a>
</li>
<li>
<a class="function" href="#Expression.root">root</a>
</li>
<li>
<a class="function" href="#Expression.walk">walk</a>
</li>
<li>
<a class="function" href="#Expression.dfs">dfs</a>
</li>
<li>
<a class="function" href="#Expression.bfs">bfs</a>
</li>
<li>
<a class="function" href="#Expression.unnest">unnest</a>
</li>
<li>
<a class="function" href="#Expression.unalias">unalias</a>
</li>
<li>
<a class="function" href="#Expression.unnest_operands">unnest_operands</a>
</li>
<li>
<a class="function" href="#Expression.flatten">flatten</a>
</li>
<li>
<a class="function" href="#Expression.sql">sql</a>
</li>
<li>
<a class="function" href="#Expression.transform">transform</a>
</li>
<li>
<a class="function" href="#Expression.replace">replace</a>
</li>
<li>
<a class="function" href="#Expression.pop">pop</a>
</li>
<li>
<a class="function" href="#Expression.assert_is">assert_is</a>
</li>
<li>
<a class="function" href="#Expression.error_messages">error_messages</a>
</li>
<li>
<a class="function" href="#Expression.dump">dump</a>
</li>
<li>
<a class="function" href="#Expression.load">load</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Condition">Condition</a>
<ul class="memberlist">
<li>
<a class="function" href="#Condition.and_">and_</a>
</li>
<li>
<a class="function" href="#Condition.or_">or_</a>
</li>
<li>
<a class="function" href="#Condition.not_">not_</a>
</li>
<li>
<a class="function" href="#Condition.as_">as_</a>
</li>
<li>
<a class="function" href="#Condition.isin">isin</a>
</li>
<li>
<a class="function" href="#Condition.between">between</a>
</li>
<li>
<a class="function" href="#Condition.is_">is_</a>
</li>
<li>
<a class="function" href="#Condition.like">like</a>
</li>
<li>
<a class="function" href="#Condition.ilike">ilike</a>
</li>
<li>
<a class="function" href="#Condition.eq">eq</a>
</li>
<li>
<a class="function" href="#Condition.neq">neq</a>
</li>
<li>
<a class="function" href="#Condition.rlike">rlike</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Predicate">Predicate</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DerivedTable">DerivedTable</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Unionable">Unionable</a>
<ul class="memberlist">
<li>
<a class="function" href="#Unionable.union">union</a>
</li>
<li>
<a class="function" href="#Unionable.intersect">intersect</a>
</li>
<li>
<a class="function" href="#Unionable.except_">except_</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#UDTF">UDTF</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Cache">Cache</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Uncache">Uncache</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Create">Create</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Clone">Clone</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Describe">Describe</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Pragma">Pragma</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Set">Set</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SetItem">SetItem</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Show">Show</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#UserDefinedFunction">UserDefinedFunction</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CharacterSet">CharacterSet</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#With">With</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#WithinGroup">WithinGroup</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CTE">CTE</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TableAlias">TableAlias</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#BitString">BitString</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#HexString">HexString</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ByteString">ByteString</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#RawString">RawString</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Column">Column</a>
<ul class="memberlist">
<li>
<a class="variable" href="#Column.output_name">output_name</a>
</li>
<li>
<a class="variable" href="#Column.parts">parts</a>
</li>
<li>
<a class="function" href="#Column.to_dot">to_dot</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#ColumnPosition">ColumnPosition</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ColumnDef">ColumnDef</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#AlterColumn">AlterColumn</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#RenameTable">RenameTable</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SetTag">SetTag</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Comment">Comment</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#MergeTreeTTLAction">MergeTreeTTLAction</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#MergeTreeTTL">MergeTreeTTL</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ColumnConstraint">ColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ColumnConstraintKind">ColumnConstraintKind</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#AutoIncrementColumnConstraint">AutoIncrementColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CaseSpecificColumnConstraint">CaseSpecificColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CharacterSetColumnConstraint">CharacterSetColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CheckColumnConstraint">CheckColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CollateColumnConstraint">CollateColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CommentColumnConstraint">CommentColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CompressColumnConstraint">CompressColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DateFormatColumnConstraint">DateFormatColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DefaultColumnConstraint">DefaultColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#EncodeColumnConstraint">EncodeColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#GeneratedAsIdentityColumnConstraint">GeneratedAsIdentityColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#InlineLengthColumnConstraint">InlineLengthColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#NotNullColumnConstraint">NotNullColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#OnUpdateColumnConstraint">OnUpdateColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#PrimaryKeyColumnConstraint">PrimaryKeyColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TitleColumnConstraint">TitleColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#UniqueColumnConstraint">UniqueColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#UppercaseColumnConstraint">UppercaseColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#PathColumnConstraint">PathColumnConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Constraint">Constraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Delete">Delete</a>
<ul class="memberlist">
<li>
<a class="function" href="#Delete.delete">delete</a>
</li>
<li>
<a class="function" href="#Delete.where">where</a>
</li>
<li>
<a class="function" href="#Delete.returning">returning</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Drop">Drop</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Filter">Filter</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Check">Check</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Directory">Directory</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ForeignKey">ForeignKey</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#PrimaryKey">PrimaryKey</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Unique">Unique</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Into">Into</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#From">From</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Having">Having</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Hint">Hint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#JoinHint">JoinHint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Identifier">Identifier</a>
<ul class="memberlist">
<li>
<a class="variable" href="#Identifier.output_name">output_name</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Index">Index</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Insert">Insert</a>
<ul class="memberlist">
<li>
<a class="function" href="#Insert.with_">with_</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#OnConflict">OnConflict</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Returning">Returning</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Introducer">Introducer</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#National">National</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#LoadData">LoadData</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Partition">Partition</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Fetch">Fetch</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Group">Group</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Lambda">Lambda</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Limit">Limit</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Literal">Literal</a>
<ul class="memberlist">
<li>
<a class="function" href="#Literal.number">number</a>
</li>
<li>
<a class="function" href="#Literal.string">string</a>
</li>
<li>
<a class="variable" href="#Literal.output_name">output_name</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Join">Join</a>
<ul class="memberlist">
<li>
<a class="function" href="#Join.on">on</a>
</li>
<li>
<a class="function" href="#Join.using">using</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Lateral">Lateral</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#MatchRecognize">MatchRecognize</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Final">Final</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Offset">Offset</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Order">Order</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Cluster">Cluster</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Distribute">Distribute</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Sort">Sort</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Ordered">Ordered</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Property">Property</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#AlgorithmProperty">AlgorithmProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#AutoIncrementProperty">AutoIncrementProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#BlockCompressionProperty">BlockCompressionProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CharacterSetProperty">CharacterSetProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ChecksumProperty">ChecksumProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CollateProperty">CollateProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DataBlocksizeProperty">DataBlocksizeProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DefinerProperty">DefinerProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DistKeyProperty">DistKeyProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DistStyleProperty">DistStyleProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#EngineProperty">EngineProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ExecuteAsProperty">ExecuteAsProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ExternalProperty">ExternalProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#FallbackProperty">FallbackProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#FileFormatProperty">FileFormatProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#FreespaceProperty">FreespaceProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#InputOutputFormat">InputOutputFormat</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#IsolatedLoadingProperty">IsolatedLoadingProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#JournalProperty">JournalProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#LanguageProperty">LanguageProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#LikeProperty">LikeProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#LocationProperty">LocationProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#LockingProperty">LockingProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#LogProperty">LogProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#MaterializedProperty">MaterializedProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#MergeBlockRatioProperty">MergeBlockRatioProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#NoPrimaryIndexProperty">NoPrimaryIndexProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#OnCommitProperty">OnCommitProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#PartitionedByProperty">PartitionedByProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ReturnsProperty">ReturnsProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#RowFormatProperty">RowFormatProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#RowFormatDelimitedProperty">RowFormatDelimitedProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#RowFormatSerdeProperty">RowFormatSerdeProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SchemaCommentProperty">SchemaCommentProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SerdeProperties">SerdeProperties</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SetProperty">SetProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SettingsProperty">SettingsProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SortKeyProperty">SortKeyProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SqlSecurityProperty">SqlSecurityProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#StabilityProperty">StabilityProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TemporaryProperty">TemporaryProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TransientProperty">TransientProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#VolatileProperty">VolatileProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#WithDataProperty">WithDataProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#WithJournalTableProperty">WithJournalTableProperty</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Properties">Properties</a>
<ul class="memberlist">
<li>
<a class="class" href="#Properties.Location">Properties.Location</a>
<ul class="memberlist">
<li>
<a class="variable" href="#Properties.Location.POST_CREATE">POST_CREATE</a>
</li>
<li>
<a class="variable" href="#Properties.Location.POST_NAME">POST_NAME</a>
</li>
<li>
<a class="variable" href="#Properties.Location.POST_SCHEMA">POST_SCHEMA</a>
</li>
<li>
<a class="variable" href="#Properties.Location.POST_WITH">POST_WITH</a>
</li>
<li>
<a class="variable" href="#Properties.Location.POST_ALIAS">POST_ALIAS</a>
</li>
<li>
<a class="variable" href="#Properties.Location.POST_EXPRESSION">POST_EXPRESSION</a>
</li>
<li>
<a class="variable" href="#Properties.Location.POST_INDEX">POST_INDEX</a>
</li>
<li>
<a class="variable" href="#Properties.Location.UNSUPPORTED">UNSUPPORTED</a>
</li>
</ul>
</li>
<li>
<a class="function" href="#Properties.from_dict">from_dict</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Qualify">Qualify</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Return">Return</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Reference">Reference</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Tuple">Tuple</a>
<ul class="memberlist">
<li>
<a class="function" href="#Tuple.isin">isin</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Subqueryable">Subqueryable</a>
<ul class="memberlist">
<li>
<a class="function" href="#Subqueryable.subquery">subquery</a>
</li>
<li>
<a class="function" href="#Subqueryable.limit">limit</a>
</li>
<li>
<a class="function" href="#Subqueryable.with_">with_</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Table">Table</a>
<ul class="memberlist">
<li>
<a class="variable" href="#Table.parts">parts</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#SystemTime">SystemTime</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Union">Union</a>
<ul class="memberlist">
<li>
<a class="function" href="#Union.limit">limit</a>
</li>
<li>
<a class="function" href="#Union.select">select</a>
</li>
<li>
<a class="variable" href="#Union.is_star">is_star</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Except">Except</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Intersect">Intersect</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Unnest">Unnest</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Update">Update</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Values">Values</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Var">Var</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Schema">Schema</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Lock">Lock</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Select">Select</a>
<ul class="memberlist">
<li>
<a class="function" href="#Select.from_">from_</a>
</li>
<li>
<a class="function" href="#Select.group_by">group_by</a>
</li>
<li>
<a class="function" href="#Select.order_by">order_by</a>
</li>
<li>
<a class="function" href="#Select.sort_by">sort_by</a>
</li>
<li>
<a class="function" href="#Select.cluster_by">cluster_by</a>
</li>
<li>
<a class="function" href="#Select.limit">limit</a>
</li>
<li>
<a class="function" href="#Select.offset">offset</a>
</li>
<li>
<a class="function" href="#Select.select">select</a>
</li>
<li>
<a class="function" href="#Select.lateral">lateral</a>
</li>
<li>
<a class="function" href="#Select.join">join</a>
</li>
<li>
<a class="function" href="#Select.where">where</a>
</li>
<li>
<a class="function" href="#Select.having">having</a>
</li>
<li>
<a class="function" href="#Select.window">window</a>
</li>
<li>
<a class="function" href="#Select.qualify">qualify</a>
</li>
<li>
<a class="function" href="#Select.distinct">distinct</a>
</li>
<li>
<a class="function" href="#Select.ctas">ctas</a>
</li>
<li>
<a class="function" href="#Select.lock">lock</a>
</li>
<li>
<a class="variable" href="#Select.is_star">is_star</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Subquery">Subquery</a>
<ul class="memberlist">
<li>
<a class="function" href="#Subquery.unnest">unnest</a>
</li>
<li>
<a class="variable" href="#Subquery.is_star">is_star</a>
</li>
<li>
<a class="variable" href="#Subquery.output_name">output_name</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#TableSample">TableSample</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Tag">Tag</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Pivot">Pivot</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Window">Window</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#WindowSpec">WindowSpec</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Where">Where</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Star">Star</a>
<ul class="memberlist">
<li>
<a class="variable" href="#Star.output_name">output_name</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Parameter">Parameter</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SessionParameter">SessionParameter</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Placeholder">Placeholder</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Null">Null</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Boolean">Boolean</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DataTypeSize">DataTypeSize</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DataType">DataType</a>
<ul class="memberlist">
<li>
<a class="class" href="#DataType.Type">DataType.Type</a>
<ul class="memberlist">
<li>
<a class="variable" href="#DataType.Type.ARRAY">ARRAY</a>
</li>
<li>
<a class="variable" href="#DataType.Type.BIGDECIMAL">BIGDECIMAL</a>
</li>
<li>
<a class="variable" href="#DataType.Type.BIGINT">BIGINT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.BIGSERIAL">BIGSERIAL</a>
</li>
<li>
<a class="variable" href="#DataType.Type.BINARY">BINARY</a>
</li>
<li>
<a class="variable" href="#DataType.Type.BIT">BIT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.BOOLEAN">BOOLEAN</a>
</li>
<li>
<a class="variable" href="#DataType.Type.CHAR">CHAR</a>
</li>
<li>
<a class="variable" href="#DataType.Type.DATE">DATE</a>
</li>
<li>
<a class="variable" href="#DataType.Type.DATETIME">DATETIME</a>
</li>
<li>
<a class="variable" href="#DataType.Type.DATETIME64">DATETIME64</a>
</li>
<li>
<a class="variable" href="#DataType.Type.DECIMAL">DECIMAL</a>
</li>
<li>
<a class="variable" href="#DataType.Type.DOUBLE">DOUBLE</a>
</li>
<li>
<a class="variable" href="#DataType.Type.FLOAT">FLOAT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.GEOGRAPHY">GEOGRAPHY</a>
</li>
<li>
<a class="variable" href="#DataType.Type.GEOMETRY">GEOMETRY</a>
</li>
<li>
<a class="variable" href="#DataType.Type.HLLSKETCH">HLLSKETCH</a>
</li>
<li>
<a class="variable" href="#DataType.Type.HSTORE">HSTORE</a>
</li>
<li>
<a class="variable" href="#DataType.Type.IMAGE">IMAGE</a>
</li>
<li>
<a class="variable" href="#DataType.Type.INET">INET</a>
</li>
<li>
<a class="variable" href="#DataType.Type.INT">INT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.INT128">INT128</a>
</li>
<li>
<a class="variable" href="#DataType.Type.INT256">INT256</a>
</li>
<li>
<a class="variable" href="#DataType.Type.INTERVAL">INTERVAL</a>
</li>
<li>
<a class="variable" href="#DataType.Type.JSON">JSON</a>
</li>
<li>
<a class="variable" href="#DataType.Type.JSONB">JSONB</a>
</li>
<li>
<a class="variable" href="#DataType.Type.LONGBLOB">LONGBLOB</a>
</li>
<li>
<a class="variable" href="#DataType.Type.LONGTEXT">LONGTEXT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.MAP">MAP</a>
</li>
<li>
<a class="variable" href="#DataType.Type.MEDIUMBLOB">MEDIUMBLOB</a>
</li>
<li>
<a class="variable" href="#DataType.Type.MEDIUMTEXT">MEDIUMTEXT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.MONEY">MONEY</a>
</li>
<li>
<a class="variable" href="#DataType.Type.NCHAR">NCHAR</a>
</li>
<li>
<a class="variable" href="#DataType.Type.NULL">NULL</a>
</li>
<li>
<a class="variable" href="#DataType.Type.NULLABLE">NULLABLE</a>
</li>
<li>
<a class="variable" href="#DataType.Type.NVARCHAR">NVARCHAR</a>
</li>
<li>
<a class="variable" href="#DataType.Type.OBJECT">OBJECT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.ROWVERSION">ROWVERSION</a>
</li>
<li>
<a class="variable" href="#DataType.Type.SERIAL">SERIAL</a>
</li>
<li>
<a class="variable" href="#DataType.Type.SMALLINT">SMALLINT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.SMALLMONEY">SMALLMONEY</a>
</li>
<li>
<a class="variable" href="#DataType.Type.SMALLSERIAL">SMALLSERIAL</a>
</li>
<li>
<a class="variable" href="#DataType.Type.STRUCT">STRUCT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.SUPER">SUPER</a>
</li>
<li>
<a class="variable" href="#DataType.Type.TEXT">TEXT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.TIME">TIME</a>
</li>
<li>
<a class="variable" href="#DataType.Type.TIMESTAMP">TIMESTAMP</a>
</li>
<li>
<a class="variable" href="#DataType.Type.TIMESTAMPTZ">TIMESTAMPTZ</a>
</li>
<li>
<a class="variable" href="#DataType.Type.TIMESTAMPLTZ">TIMESTAMPLTZ</a>
</li>
<li>
<a class="variable" href="#DataType.Type.TINYINT">TINYINT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.UBIGINT">UBIGINT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.UINT">UINT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.USMALLINT">USMALLINT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.UTINYINT">UTINYINT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.UNKNOWN">UNKNOWN</a>
</li>
<li>
<a class="variable" href="#DataType.Type.UINT128">UINT128</a>
</li>
<li>
<a class="variable" href="#DataType.Type.UINT256">UINT256</a>
</li>
<li>
<a class="variable" href="#DataType.Type.UNIQUEIDENTIFIER">UNIQUEIDENTIFIER</a>
</li>
<li>
<a class="variable" href="#DataType.Type.UUID">UUID</a>
</li>
<li>
<a class="variable" href="#DataType.Type.VARBINARY">VARBINARY</a>
</li>
<li>
<a class="variable" href="#DataType.Type.VARCHAR">VARCHAR</a>
</li>
<li>
<a class="variable" href="#DataType.Type.VARIANT">VARIANT</a>
</li>
<li>
<a class="variable" href="#DataType.Type.XML">XML</a>
</li>
</ul>
</li>
<li>
<a class="function" href="#DataType.build">build</a>
</li>
<li>
<a class="function" href="#DataType.is_type">is_type</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#PseudoType">PseudoType</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SubqueryPredicate">SubqueryPredicate</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#All">All</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Any">Any</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Exists">Exists</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Command">Command</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Transaction">Transaction</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Commit">Commit</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Rollback">Rollback</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#AlterTable">AlterTable</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#AddConstraint">AddConstraint</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DropPartition">DropPartition</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Binary">Binary</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Add">Add</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Connector">Connector</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#And">And</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Or">Or</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#BitwiseAnd">BitwiseAnd</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#BitwiseLeftShift">BitwiseLeftShift</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#BitwiseOr">BitwiseOr</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#BitwiseRightShift">BitwiseRightShift</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#BitwiseXor">BitwiseXor</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Div">Div</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Overlaps">Overlaps</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Dot">Dot</a>
<ul class="memberlist">
<li>
<a class="function" href="#Dot.build">build</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#DPipe">DPipe</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#EQ">EQ</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#NullSafeEQ">NullSafeEQ</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#NullSafeNEQ">NullSafeNEQ</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Distance">Distance</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Escape">Escape</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Glob">Glob</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#GT">GT</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#GTE">GTE</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ILike">ILike</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ILikeAny">ILikeAny</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#IntDiv">IntDiv</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Is">Is</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Kwarg">Kwarg</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Like">Like</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#LikeAny">LikeAny</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#LT">LT</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#LTE">LTE</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Mod">Mod</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Mul">Mul</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#NEQ">NEQ</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SimilarTo">SimilarTo</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Slice">Slice</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Sub">Sub</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ArrayOverlaps">ArrayOverlaps</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Unary">Unary</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#BitwiseNot">BitwiseNot</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Not">Not</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Paren">Paren</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Neg">Neg</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Alias">Alias</a>
<ul class="memberlist">
<li>
<a class="variable" href="#Alias.output_name">output_name</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Aliases">Aliases</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#AtTimeZone">AtTimeZone</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Between">Between</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Bracket">Bracket</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Distinct">Distinct</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#In">In</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimeUnit">TimeUnit</a>
<ul class="memberlist">
<li>
<a class="function" href="#TimeUnit.__init__">TimeUnit</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Interval">Interval</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#IgnoreNulls">IgnoreNulls</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#RespectNulls">RespectNulls</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Func">Func</a>
<ul class="memberlist">
<li>
<a class="function" href="#Func.from_arg_list">from_arg_list</a>
</li>
<li>
<a class="function" href="#Func.sql_names">sql_names</a>
</li>
<li>
<a class="function" href="#Func.sql_name">sql_name</a>
</li>
<li>
<a class="function" href="#Func.default_parser_mappings">default_parser_mappings</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#AggFunc">AggFunc</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ParameterizedAgg">ParameterizedAgg</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Abs">Abs</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Anonymous">Anonymous</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Hll">Hll</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ApproxDistinct">ApproxDistinct</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Array">Array</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ToChar">ToChar</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#GenerateSeries">GenerateSeries</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ArrayAgg">ArrayAgg</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ArrayAll">ArrayAll</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ArrayAny">ArrayAny</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ArrayConcat">ArrayConcat</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ArrayContains">ArrayContains</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ArrayContained">ArrayContained</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ArrayFilter">ArrayFilter</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ArrayJoin">ArrayJoin</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ArraySize">ArraySize</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ArraySort">ArraySort</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ArraySum">ArraySum</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ArrayUnionAgg">ArrayUnionAgg</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Avg">Avg</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#AnyValue">AnyValue</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Case">Case</a>
<ul class="memberlist">
<li>
<a class="function" href="#Case.when">when</a>
</li>
<li>
<a class="function" href="#Case.else_">else_</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#Cast">Cast</a>
<ul class="memberlist">
<li>
<a class="variable" href="#Cast.output_name">output_name</a>
</li>
<li>
<a class="function" href="#Cast.is_type">is_type</a>
</li>
</ul>
</li>
<li>
<a class="class" href="#CastToStrType">CastToStrType</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Collate">Collate</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TryCast">TryCast</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Ceil">Ceil</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Coalesce">Coalesce</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Concat">Concat</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ConcatWs">ConcatWs</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Count">Count</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CountIf">CountIf</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CurrentDate">CurrentDate</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CurrentDatetime">CurrentDatetime</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CurrentTime">CurrentTime</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CurrentTimestamp">CurrentTimestamp</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#CurrentUser">CurrentUser</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DateAdd">DateAdd</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DateSub">DateSub</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DateDiff">DateDiff</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DateTrunc">DateTrunc</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DatetimeAdd">DatetimeAdd</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DatetimeSub">DatetimeSub</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DatetimeDiff">DatetimeDiff</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DatetimeTrunc">DatetimeTrunc</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DayOfWeek">DayOfWeek</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DayOfMonth">DayOfMonth</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DayOfYear">DayOfYear</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#WeekOfYear">WeekOfYear</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#LastDateOfMonth">LastDateOfMonth</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Extract">Extract</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimestampAdd">TimestampAdd</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimestampSub">TimestampSub</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimestampDiff">TimestampDiff</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimestampTrunc">TimestampTrunc</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimeAdd">TimeAdd</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimeSub">TimeSub</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimeDiff">TimeDiff</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimeTrunc">TimeTrunc</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DateFromParts">DateFromParts</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DateStrToDate">DateStrToDate</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DateToDateStr">DateToDateStr</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DateToDi">DateToDi</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Day">Day</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Decode">Decode</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#DiToDate">DiToDate</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Encode">Encode</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Exp">Exp</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Explode">Explode</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Floor">Floor</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#FromBase64">FromBase64</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ToBase64">ToBase64</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Greatest">Greatest</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#GroupConcat">GroupConcat</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Hex">Hex</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#If">If</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#IfNull">IfNull</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Initcap">Initcap</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#JSONKeyValue">JSONKeyValue</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#JSONObject">JSONObject</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#OpenJSONColumnDef">OpenJSONColumnDef</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#OpenJSON">OpenJSON</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#JSONBContains">JSONBContains</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#JSONExtract">JSONExtract</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#JSONExtractScalar">JSONExtractScalar</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#JSONBExtract">JSONBExtract</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#JSONBExtractScalar">JSONBExtractScalar</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#JSONFormat">JSONFormat</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Least">Least</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Length">Length</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Levenshtein">Levenshtein</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Ln">Ln</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Log">Log</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Log2">Log2</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Log10">Log10</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#LogicalOr">LogicalOr</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#LogicalAnd">LogicalAnd</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Lower">Lower</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Map">Map</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#StarMap">StarMap</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#VarMap">VarMap</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#MatchAgainst">MatchAgainst</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Max">Max</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#MD5">MD5</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Min">Min</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Month">Month</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Nvl2">Nvl2</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Posexplode">Posexplode</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Pow">Pow</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#PercentileCont">PercentileCont</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#PercentileDisc">PercentileDisc</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Quantile">Quantile</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ApproxQuantile">ApproxQuantile</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#RangeN">RangeN</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#ReadCSV">ReadCSV</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Reduce">Reduce</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#RegexpExtract">RegexpExtract</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#RegexpLike">RegexpLike</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#RegexpILike">RegexpILike</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#RegexpSplit">RegexpSplit</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Repeat">Repeat</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Round">Round</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#RowNumber">RowNumber</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SafeDivide">SafeDivide</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SetAgg">SetAgg</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SHA">SHA</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SHA2">SHA2</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#SortArray">SortArray</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Split">Split</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Substring">Substring</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#StandardHash">StandardHash</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#StrPosition">StrPosition</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#StrToDate">StrToDate</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#StrToTime">StrToTime</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#StrToUnix">StrToUnix</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#NumberToStr">NumberToStr</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Struct">Struct</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#StructExtract">StructExtract</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Sum">Sum</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Sqrt">Sqrt</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Stddev">Stddev</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#StddevPop">StddevPop</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#StddevSamp">StddevSamp</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimeToStr">TimeToStr</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimeToTimeStr">TimeToTimeStr</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimeToUnix">TimeToUnix</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimeStrToDate">TimeStrToDate</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimeStrToTime">TimeStrToTime</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TimeStrToUnix">TimeStrToUnix</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Trim">Trim</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TsOrDsAdd">TsOrDsAdd</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TsOrDsToDateStr">TsOrDsToDateStr</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TsOrDsToDate">TsOrDsToDate</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#TsOrDiToDi">TsOrDiToDi</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Unhex">Unhex</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#UnixToStr">UnixToStr</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#UnixToTime">UnixToTime</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#UnixToTimeStr">UnixToTimeStr</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Upper">Upper</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Variance">Variance</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#VariancePop">VariancePop</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Week">Week</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#XMLTable">XMLTable</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Year">Year</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Use">Use</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#Merge">Merge</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#When">When</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="class" href="#NextValueFor">NextValueFor</a>
<ul class="memberlist">
</ul>
</li>
<li>
<a class="function" href="#maybe_parse">maybe_parse</a>
</li>
<li>
<a class="function" href="#union">union</a>
</li>
<li>
<a class="function" href="#intersect">intersect</a>
</li>
<li>
<a class="function" href="#except_">except_</a>
</li>
<li>
<a class="function" href="#select">select</a>
</li>
<li>
<a class="function" href="#from_">from_</a>
</li>
<li>
<a class="function" href="#update">update</a>
</li>
<li>
<a class="function" href="#delete">delete</a>
</li>
<li>
<a class="function" href="#insert">insert</a>
</li>
<li>
<a class="function" href="#condition">condition</a>
</li>
<li>
<a class="function" href="#and_">and_</a>
</li>
<li>
<a class="function" href="#or_">or_</a>
</li>
<li>
<a class="function" href="#not_">not_</a>
</li>
<li>
<a class="function" href="#paren">paren</a>
</li>
<li>
<a class="function" href="#to_identifier">to_identifier</a>
</li>
<li>
<a class="function" href="#to_interval">to_interval</a>
</li>
<li>
<a class="function" href="#to_table">to_table</a>
</li>
<li>
<a class="function" href="#to_column">to_column</a>
</li>
<li>
<a class="function" href="#alias_">alias_</a>
</li>
<li>
<a class="function" href="#subquery">subquery</a>
</li>
<li>
<a class="function" href="#column">column</a>
</li>
<li>
<a class="function" href="#cast">cast</a>
</li>
<li>
<a class="function" href="#table_">table_</a>
</li>
<li>
<a class="function" href="#values">values</a>
</li>
<li>
<a class="function" href="#var">var</a>
</li>
<li>
<a class="function" href="#rename_table">rename_table</a>
</li>
<li>
<a class="function" href="#convert">convert</a>
</li>
<li>
<a class="function" href="#replace_children">replace_children</a>
</li>
<li>
<a class="function" href="#column_table_names">column_table_names</a>
</li>
<li>
<a class="function" href="#table_name">table_name</a>
</li>
<li>
<a class="function" href="#replace_tables">replace_tables</a>
</li>
<li>
<a class="function" href="#replace_placeholders">replace_placeholders</a>
</li>
<li>
<a class="function" href="#expand">expand</a>
</li>
<li>
<a class="function" href="#func">func</a>
</li>
<li>
<a class="function" href="#true">true</a>
</li>
<li>
<a class="function" href="#false">false</a>
</li>
<li>
<a class="function" href="#null">null</a>
</li>
</ul>
<footer>Copyright (c) 2023 Toby Mao</footer>
<a class="attribution" title="pdoc: Python API documentation generator" href="https://pdoc.dev" target="_blank">
built with <span class="visually-hidden">pdoc</span><img
alt="pdoc logo"
src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20role%3D%22img%22%20aria-label%3D%22pdoc%20logo%22%20width%3D%22300%22%20height%3D%22150%22%20viewBox%3D%22-1%200%2060%2030%22%3E%3Ctitle%3Epdoc%3C/title%3E%3Cpath%20d%3D%22M29.621%2021.293c-.011-.273-.214-.475-.511-.481a.5.5%200%200%200-.489.503l-.044%201.393c-.097.551-.695%201.215-1.566%201.704-.577.428-1.306.486-2.193.182-1.426-.617-2.467-1.654-3.304-2.487l-.173-.172a3.43%203.43%200%200%200-.365-.306.49.49%200%200%200-.286-.196c-1.718-1.06-4.931-1.47-7.353.191l-.219.15c-1.707%201.187-3.413%202.131-4.328%201.03-.02-.027-.49-.685-.141-1.763.233-.721.546-2.408.772-4.076.042-.09.067-.187.046-.288.166-1.347.277-2.625.241-3.351%201.378-1.008%202.271-2.586%202.271-4.362%200-.976-.272-1.935-.788-2.774-.057-.094-.122-.18-.184-.268.033-.167.052-.339.052-.516%200-1.477-1.202-2.679-2.679-2.679-.791%200-1.496.352-1.987.9a6.3%206.3%200%200%200-1.001.029c-.492-.564-1.207-.929-2.012-.929-1.477%200-2.679%201.202-2.679%202.679A2.65%202.65%200%200%200%20.97%206.554c-.383.747-.595%201.572-.595%202.41%200%202.311%201.507%204.29%203.635%205.107-.037.699-.147%202.27-.423%203.294l-.137.461c-.622%202.042-2.515%208.257%201.727%2010.643%201.614.908%203.06%201.248%204.317%201.248%202.665%200%204.492-1.524%205.322-2.401%201.476-1.559%202.886-1.854%206.491.82%201.877%201.393%203.514%201.753%204.861%201.068%202.223-1.713%202.811-3.867%203.399-6.374.077-.846.056-1.469.054-1.537zm-4.835%204.313c-.054.305-.156.586-.242.629-.034-.007-.131-.022-.307-.157-.145-.111-.314-.478-.456-.908.221.121.432.25.675.355.115.039.219.051.33.081zm-2.251-1.238c-.05.33-.158.648-.252.694-.022.001-.125-.018-.307-.157-.217-.166-.488-.906-.639-1.573.358.344.754.693%201.198%201.036zm-3.887-2.337c-.006-.116-.018-.231-.041-.342.635.145%201.189.368%201.599.625.097.231.166.481.174.642-.03.049-.055.101-.067.158-.046.013-.128.026-.298.004-.278-.037-.901-.57-1.367-1.087zm-1.127-.497c.116.306.176.625.12.71-.019.014-.117.045-.345.016-.206-.027-.604-.332-.986-.695.41-.051.816-.056%201.211-.031zm-4.535%201.535c.209.22.379.47.358.598-.006.041-.088.138-.351.234-.144.055-.539-.063-.979-.259a11.66%2011.66%200%200%200%20.972-.573zm.983-.664c.359-.237.738-.418%201.126-.554.25.237.479.548.457.694-.006.042-.087.138-.351.235-.174.064-.694-.105-1.232-.375zm-3.381%201.794c-.022.145-.061.29-.149.401-.133.166-.358.248-.69.251h-.002c-.133%200-.306-.26-.45-.621.417.091.854.07%201.291-.031zm-2.066-8.077a4.78%204.78%200%200%201-.775-.584c.172-.115.505-.254.88-.378l-.105.962zm-.331%202.302a10.32%2010.32%200%200%201-.828-.502c.202-.143.576-.328.984-.49l-.156.992zm-.45%202.157l-.701-.403c.214-.115.536-.249.891-.376a11.57%2011.57%200%200%201-.19.779zm-.181%201.716c.064.398.194.702.298.893-.194-.051-.435-.162-.736-.398.061-.119.224-.3.438-.495zM8.87%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zm-.735-.389a1.15%201.15%200%200%200-.314.783%201.16%201.16%200%200%200%201.162%201.162c.457%200%20.842-.27%201.032-.653.026.117.042.238.042.362a1.68%201.68%200%200%201-1.679%201.679%201.68%201.68%200%200%201-1.679-1.679c0-.843.626-1.535%201.436-1.654zM5.059%205.406A1.68%201.68%200%200%201%203.38%207.085a1.68%201.68%200%200%201-1.679-1.679c0-.037.009-.072.011-.109.21.3.541.508.935.508a1.16%201.16%200%200%200%201.162-1.162%201.14%201.14%200%200%200-.474-.912c.015%200%20.03-.005.045-.005.926.001%201.679.754%201.679%201.68zM3.198%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zM1.375%208.964c0-.52.103-1.035.288-1.52.466.394%201.06.64%201.717.64%201.144%200%202.116-.725%202.499-1.738.383%201.012%201.355%201.738%202.499%201.738.867%200%201.631-.421%202.121-1.062.307.605.478%201.267.478%201.942%200%202.486-2.153%204.51-4.801%204.51s-4.801-2.023-4.801-4.51zm24.342%2019.349c-.985.498-2.267.168-3.813-.979-3.073-2.281-5.453-3.199-7.813-.705-1.315%201.391-4.163%203.365-8.423.97-3.174-1.786-2.239-6.266-1.261-9.479l.146-.492c.276-1.02.395-2.457.444-3.268a6.11%206.11%200%200%200%201.18.115%206.01%206.01%200%200%200%202.536-.562l-.006.175c-.802.215-1.848.612-2.021%201.25-.079.295.021.601.274.837.219.203.415.364.598.501-.667.304-1.243.698-1.311%201.179-.02.144-.022.507.393.787.213.144.395.26.564.365-1.285.521-1.361.96-1.381%201.126-.018.142-.011.496.427.746l.854.489c-.473.389-.971.914-.999%201.429-.018.278.095.532.316.713.675.556%201.231.721%201.653.721.059%200%20.104-.014.158-.02.207.707.641%201.64%201.513%201.64h.013c.8-.008%201.236-.345%201.462-.626.173-.216.268-.457.325-.692.424.195.93.374%201.372.374.151%200%20.294-.021.423-.068.732-.27.944-.704.993-1.021.009-.061.003-.119.002-.179.266.086.538.147.789.147.15%200%20.294-.021.423-.069.542-.2.797-.489.914-.754.237.147.478.258.704.288.106.014.205.021.296.021.356%200%20.595-.101.767-.229.438.435%201.094.992%201.656%201.067.106.014.205.021.296.021a1.56%201.56%200%200%200%20.323-.035c.17.575.453%201.289.866%201.605.358.273.665.362.914.362a.99.99%200%200%200%20.421-.093%201.03%201.03%200%200%200%20.245-.164c.168.428.39.846.68%201.068.358.273.665.362.913.362a.99.99%200%200%200%20.421-.093c.317-.148.512-.448.639-.762.251.157.495.257.726.257.127%200%20.25-.024.37-.071.427-.17.706-.617.841-1.314.022-.015.047-.022.068-.038.067-.051.133-.104.196-.159-.443%201.486-1.107%202.761-2.086%203.257zM8.66%209.925a.5.5%200%201%200-1%200c0%20.653-.818%201.205-1.787%201.205s-1.787-.552-1.787-1.205a.5.5%200%201%200-1%200c0%201.216%201.25%202.205%202.787%202.205s2.787-.989%202.787-2.205zm4.4%2015.965l-.208.097c-2.661%201.258-4.708%201.436-6.086.527-1.542-1.017-1.88-3.19-1.844-4.198a.4.4%200%200%200-.385-.414c-.242-.029-.406.164-.414.385-.046%201.249.367%203.686%202.202%204.896.708.467%201.547.7%202.51.7%201.248%200%202.706-.392%204.362-1.174l.185-.086a.4.4%200%200%200%20.205-.527c-.089-.204-.326-.291-.527-.206zM9.547%202.292c.093.077.205.114.317.114a.5.5%200%200%200%20.318-.886L8.817.397a.5.5%200%200%200-.703.068.5.5%200%200%200%20.069.703l1.364%201.124zm-7.661-.065c.086%200%20.173-.022.253-.068l1.523-.893a.5.5%200%200%200-.506-.863l-1.523.892a.5.5%200%200%200-.179.685c.094.158.261.247.432.247z%22%20transform%3D%22matrix%28-1%200%200%201%2058%200%29%22%20fill%3D%22%233bb300%22/%3E%3Cpath%20d%3D%22M.3%2021.86V10.18q0-.46.02-.68.04-.22.18-.5.28-.54%201.34-.54%201.06%200%201.42.28.38.26.44.78.76-1.04%202.38-1.04%201.64%200%203.1%201.54%201.46%201.54%201.46%203.58%200%202.04-1.46%203.58-1.44%201.54-3.08%201.54-1.64%200-2.38-.92v4.04q0%20.46-.04.68-.02.22-.18.5-.14.3-.5.42-.36.12-.98.12-.62%200-1-.12-.36-.12-.52-.4-.14-.28-.18-.5-.02-.22-.02-.68zm3.96-9.42q-.46.54-.46%201.18%200%20.64.46%201.18.48.52%201.2.52.74%200%201.24-.52.52-.52.52-1.18%200-.66-.48-1.18-.48-.54-1.26-.54-.76%200-1.22.54zm14.741-8.36q.16-.3.54-.42.38-.12%201-.12.64%200%201.02.12.38.12.52.42.16.3.18.54.04.22.04.68v11.94q0%20.46-.04.7-.02.22-.18.5-.3.54-1.7.54-1.38%200-1.54-.98-.84.96-2.34.96-1.8%200-3.28-1.56-1.48-1.58-1.48-3.66%200-2.1%201.48-3.68%201.5-1.58%203.28-1.58%201.48%200%202.3%201v-4.2q0-.46.02-.68.04-.24.18-.52zm-3.24%2010.86q.52.54%201.26.54.74%200%201.22-.54.5-.54.5-1.18%200-.66-.48-1.22-.46-.56-1.26-.56-.8%200-1.28.56-.48.54-.48%201.2%200%20.66.52%201.2zm7.833-1.2q0-2.4%201.68-3.96%201.68-1.56%203.84-1.56%202.16%200%203.82%201.56%201.66%201.54%201.66%203.94%200%201.66-.86%202.96-.86%201.28-2.1%201.9-1.22.6-2.54.6-1.32%200-2.56-.64-1.24-.66-2.1-1.92-.84-1.28-.84-2.88zm4.18%201.44q.64.48%201.3.48.66%200%201.32-.5.66-.5.66-1.48%200-.98-.62-1.46-.62-.48-1.34-.48-.72%200-1.34.5-.62.5-.62%201.48%200%20.96.64%201.46zm11.412-1.44q0%20.84.56%201.32.56.46%201.18.46.64%200%201.18-.36.56-.38.9-.38.6%200%201.46%201.06.46.58.46%201.04%200%20.76-1.1%201.42-1.14.8-2.8.8-1.86%200-3.58-1.34-.82-.64-1.34-1.7-.52-1.08-.52-2.36%200-1.3.52-2.34.52-1.06%201.34-1.7%201.66-1.32%203.54-1.32.76%200%201.48.22.72.2%201.06.4l.32.2q.36.24.56.38.52.4.52.92%200%20.5-.42%201.14-.72%201.1-1.38%201.1-.38%200-1.08-.44-.36-.34-1.04-.34-.66%200-1.24.48-.58.48-.58%201.34z%22%20fill%3D%22green%22/%3E%3C/svg%3E"/>
</a>
</div>
</nav>
<main class="pdoc">
<section class="module-info">
<a class="pdoc-button git-button" href="https://github.com/tobymao/sqlglot/tree/main/sqlglot/expressions.py">Edit on GitHub</a>
<div class="docstring"><h2 id="expressions">Expressions</h2>
<p>Every AST node in SQLGlot is represented by a subclass of <code><a href="#Expression">Expression</a></code>.</p>
<p>This module contains the implementation of all supported <code><a href="#Expression">Expression</a></code> types. Additionally,
it exposes a number of helper functions, which are mainly used to programmatically build
SQL expressions, such as <code><a href="#select">sqlglot.expressions.select</a></code>.</p>
<hr />
</div>
<input id="mod-expressions-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<label class="view-source-button" for="mod-expressions-view-source"><span>View Source</span></label>
<div class="pdoc-code codehilite"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos"> 1</span></a><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a><span class="sd">## Expressions</span>
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a>
</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="sd">Every AST node in SQLGlot is represented by a subclass of `Expression`.</span>
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a>
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="sd">This module contains the implementation of all supported `Expression` types. Additionally,</span>
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="sd">it exposes a number of helper functions, which are mainly used to programmatically build</span>
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="sd">SQL expressions, such as `sqlglot.expressions.select`.</span>
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a>
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="sd">----</span>
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a>
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">annotations</span>
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a>
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="kn">import</span> <span class="nn">datetime</span>
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="kn">import</span> <span class="nn">math</span>
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="kn">import</span> <span class="nn">numbers</span>
</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="kn">import</span> <span class="nn">re</span>
</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="kn">import</span> <span class="nn">typing</span> <span class="k">as</span> <span class="nn">t</span>
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="kn">from</span> <span class="nn">collections</span> <span class="kn">import</span> <span class="n">deque</span>
</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="kn">from</span> <span class="nn">copy</span> <span class="kn">import</span> <span class="n">deepcopy</span>
</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a><span class="kn">from</span> <span class="nn">enum</span> <span class="kn">import</span> <span class="n">auto</span>
</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a>
</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a><span class="kn">from</span> <span class="nn">sqlglot._typing</span> <span class="kn">import</span> <span class="n">E</span>
</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a><span class="kn">from</span> <span class="nn">sqlglot.errors</span> <span class="kn">import</span> <span class="n">ParseError</span>
</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="p">(</span>
</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="n">AutoName</span><span class="p">,</span>
</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="n">camel_to_snake_case</span><span class="p">,</span>
</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="n">ensure_collection</span><span class="p">,</span>
</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="n">ensure_list</span><span class="p">,</span>
</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="n">seq_get</span><span class="p">,</span>
</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="n">subclasses</span><span class="p">,</span>
</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="p">)</span>
</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a><span class="kn">from</span> <span class="nn">sqlglot.tokens</span> <span class="kn">import</span> <span class="n">Token</span>
</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a>
</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a><span class="k">if</span> <span class="n">t</span><span class="o">.</span><span class="n">TYPE_CHECKING</span><span class="p">:</span>
</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">DialectType</span>
</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a>
</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a>
</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a><span class="k">class</span> <span class="nc">_Expression</span><span class="p">(</span><span class="nb">type</span><span class="p">):</span>
</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="k">def</span> <span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">clsname</span><span class="p">,</span> <span class="n">bases</span><span class="p">,</span> <span class="n">attrs</span><span class="p">):</span>
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="n">klass</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__new__</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">clsname</span><span class="p">,</span> <span class="n">bases</span><span class="p">,</span> <span class="n">attrs</span><span class="p">)</span>
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a>
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="c1"># When an Expression class is created, its key is automatically set to be</span>
</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="c1"># the lowercase version of the class&#39; name.</span>
</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="n">klass</span><span class="o">.</span><span class="n">key</span> <span class="o">=</span> <span class="n">clsname</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a>
</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="c1"># This is so that docstrings are not inherited in pdoc</span>
</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="n">klass</span><span class="o">.</span><span class="vm">__doc__</span> <span class="o">=</span> <span class="n">klass</span><span class="o">.</span><span class="vm">__doc__</span> <span class="ow">or</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a>
</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="k">return</span> <span class="n">klass</span>
</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a>
</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a>
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a><span class="k">class</span> <span class="nc">Expression</span><span class="p">(</span><span class="n">metaclass</span><span class="o">=</span><span class="n">_Expression</span><span class="p">):</span>
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a><span class="sd"> The base class for all expressions in a syntax tree. Each Expression encapsulates any necessary</span>
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="sd"> context, such as its child expressions, their names (arg keys), and whether a given child expression</span>
</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="sd"> is optional or not.</span>
</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a>
</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="sd"> Attributes:</span>
</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="sd"> key: a unique key for each class in the Expression hierarchy. This is useful for hashing</span>
</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="sd"> and representing expressions as strings.</span>
</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="sd"> arg_types: determines what arguments (child nodes) are supported by an expression. It</span>
</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="sd"> maps arg keys to booleans that indicate whether the corresponding args are optional.</span>
</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="sd"> parent: a reference to the parent expression (or None, in case of root expressions).</span>
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a><span class="sd"> arg_key: the arg key an expression is associated with, i.e. the name its parent expression</span>
</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a><span class="sd"> uses to refer to it.</span>
</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a><span class="sd"> comments: a list of comments that are associated with a given expression. This is used in</span>
</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="sd"> order to preserve comments when transpiling SQL code.</span>
</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a><span class="sd"> _type: the `sqlglot.expressions.DataType` type of an expression. This is inferred by the</span>
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="sd"> optimizer, in order to enable some transformations that require type information.</span>
</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a>
</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="sd"> Example:</span>
</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a><span class="sd"> &gt;&gt;&gt; class Foo(Expression):</span>
</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a><span class="sd"> ... arg_types = {&quot;this&quot;: True, &quot;expression&quot;: False}</span>
</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a>
</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a><span class="sd"> The above definition informs us that Foo is an Expression that requires an argument called</span>
</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a><span class="sd"> &quot;this&quot; and may also optionally receive an argument called &quot;expression&quot;.</span>
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a>
</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a><span class="sd"> Args:</span>
</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a><span class="sd"> args: a mapping used for retrieving the arguments of an expression, given their arg keys.</span>
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a>
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="n">key</span> <span class="o">=</span> <span class="s2">&quot;expression&quot;</span>
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;args&quot;</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">,</span> <span class="s2">&quot;arg_key&quot;</span><span class="p">,</span> <span class="s2">&quot;comments&quot;</span><span class="p">,</span> <span class="s2">&quot;_type&quot;</span><span class="p">,</span> <span class="s2">&quot;_meta&quot;</span><span class="p">,</span> <span class="s2">&quot;_hash&quot;</span><span class="p">)</span>
</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a>
</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">):</span>
</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">args</span>
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a>
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">for</span> <span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a>
</span><span id="L-100"><a href="#L-100"><span class="linenos"> 100</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-101"><a href="#L-101"><span class="linenos"> 101</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">type</span><span class="p">(</span><span class="n">other</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">hash</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">==</span> <span class="nb">hash</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
</span><span id="L-102"><a href="#L-102"><span class="linenos"> 102</span></a>
</span><span id="L-103"><a href="#L-103"><span class="linenos"> 103</span></a> <span class="nd">@property</span>
</span><span id="L-104"><a href="#L-104"><span class="linenos"> 104</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
</span><span id="L-105"><a href="#L-105"><span class="linenos"> 105</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</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="n">k</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
</span><span id="L-106"><a href="#L-106"><span class="linenos"> 106</span></a>
</span><span id="L-107"><a href="#L-107"><span class="linenos"> 107</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span>
</span><span id="L-108"><a href="#L-108"><span class="linenos"> 108</span></a> <span class="p">(</span><span class="nb">tuple</span><span class="p">(</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">arg</span><span class="p">)</span> <span class="k">if</span> <span class="n">arg</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="L-109"><a href="#L-109"><span class="linenos"> 109</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span>
</span><span id="L-110"><a href="#L-110"><span class="linenos"> 110</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">False</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="L-111"><a href="#L-111"><span class="linenos"> 111</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span>
</span><span id="L-112"><a href="#L-112"><span class="linenos"> 112</span></a> <span class="p">)</span>
</span><span id="L-113"><a href="#L-113"><span class="linenos"> 113</span></a>
</span><span id="L-114"><a href="#L-114"><span class="linenos"> 114</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
</span><span id="L-115"><a href="#L-115"><span class="linenos"> 115</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-116"><a href="#L-116"><span class="linenos"> 116</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span>
</span><span id="L-117"><a href="#L-117"><span class="linenos"> 117</span></a>
</span><span id="L-118"><a href="#L-118"><span class="linenos"> 118</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">hashable_args</span><span class="p">))</span>
</span><span id="L-119"><a href="#L-119"><span class="linenos"> 119</span></a>
</span><span id="L-120"><a href="#L-120"><span class="linenos"> 120</span></a> <span class="nd">@property</span>
</span><span id="L-121"><a href="#L-121"><span class="linenos"> 121</span></a> <span class="k">def</span> <span class="nf">this</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-122"><a href="#L-122"><span class="linenos"> 122</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-123"><a href="#L-123"><span class="linenos"> 123</span></a><span class="sd"> Retrieves the argument with key &quot;this&quot;.</span>
</span><span id="L-124"><a href="#L-124"><span class="linenos"> 124</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-125"><a href="#L-125"><span class="linenos"> 125</span></a> <span class="k">return</span> <span class="bp">self</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;this&quot;</span><span class="p">)</span>
</span><span id="L-126"><a href="#L-126"><span class="linenos"> 126</span></a>
</span><span id="L-127"><a href="#L-127"><span class="linenos"> 127</span></a> <span class="nd">@property</span>
</span><span id="L-128"><a href="#L-128"><span class="linenos"> 128</span></a> <span class="k">def</span> <span class="nf">expression</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-129"><a href="#L-129"><span class="linenos"> 129</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-130"><a href="#L-130"><span class="linenos"> 130</span></a><span class="sd"> Retrieves the argument with key &quot;expression&quot;.</span>
</span><span id="L-131"><a href="#L-131"><span class="linenos"> 131</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-132"><a href="#L-132"><span class="linenos"> 132</span></a> <span class="k">return</span> <span class="bp">self</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;expression&quot;</span><span class="p">)</span>
</span><span id="L-133"><a href="#L-133"><span class="linenos"> 133</span></a>
</span><span id="L-134"><a href="#L-134"><span class="linenos"> 134</span></a> <span class="nd">@property</span>
</span><span id="L-135"><a href="#L-135"><span class="linenos"> 135</span></a> <span class="k">def</span> <span class="nf">expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-136"><a href="#L-136"><span class="linenos"> 136</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-137"><a href="#L-137"><span class="linenos"> 137</span></a><span class="sd"> Retrieves the argument with key &quot;expressions&quot;.</span>
</span><span id="L-138"><a href="#L-138"><span class="linenos"> 138</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-139"><a href="#L-139"><span class="linenos"> 139</span></a> <span class="k">return</span> <span class="bp">self</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;expressions&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
</span><span id="L-140"><a href="#L-140"><span class="linenos"> 140</span></a>
</span><span id="L-141"><a href="#L-141"><span class="linenos"> 141</span></a> <span class="k">def</span> <span class="nf">text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-142"><a href="#L-142"><span class="linenos"> 142</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-143"><a href="#L-143"><span class="linenos"> 143</span></a><span class="sd"> Returns a textual representation of the argument corresponding to &quot;key&quot;. This can only be used</span>
</span><span id="L-144"><a href="#L-144"><span class="linenos"> 144</span></a><span class="sd"> for args that are strings or leaf Expression instances, such as identifiers and literals.</span>
</span><span id="L-145"><a href="#L-145"><span class="linenos"> 145</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-146"><a href="#L-146"><span class="linenos"> 146</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</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="n">key</span><span class="p">)</span>
</span><span id="L-147"><a href="#L-147"><span class="linenos"> 147</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="L-148"><a href="#L-148"><span class="linenos"> 148</span></a> <span class="k">return</span> <span class="n">field</span>
</span><span id="L-149"><a href="#L-149"><span class="linenos"> 149</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)):</span>
</span><span id="L-150"><a href="#L-150"><span class="linenos"> 150</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">this</span>
</span><span id="L-151"><a href="#L-151"><span class="linenos"> 151</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Star</span><span class="p">,</span> <span class="n">Null</span><span class="p">)):</span>
</span><span id="L-152"><a href="#L-152"><span class="linenos"> 152</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-153"><a href="#L-153"><span class="linenos"> 153</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-154"><a href="#L-154"><span class="linenos"> 154</span></a>
</span><span id="L-155"><a href="#L-155"><span class="linenos"> 155</span></a> <span class="nd">@property</span>
</span><span id="L-156"><a href="#L-156"><span class="linenos"> 156</span></a> <span class="k">def</span> <span class="nf">is_string</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-157"><a href="#L-157"><span class="linenos"> 157</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-158"><a href="#L-158"><span class="linenos"> 158</span></a><span class="sd"> Checks whether a Literal expression is a string.</span>
</span><span id="L-159"><a href="#L-159"><span class="linenos"> 159</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-160"><a href="#L-160"><span class="linenos"> 160</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
</span><span id="L-161"><a href="#L-161"><span class="linenos"> 161</span></a>
</span><span id="L-162"><a href="#L-162"><span class="linenos"> 162</span></a> <span class="nd">@property</span>
</span><span id="L-163"><a href="#L-163"><span class="linenos"> 163</span></a> <span class="k">def</span> <span class="nf">is_number</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-164"><a href="#L-164"><span class="linenos"> 164</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-165"><a href="#L-165"><span class="linenos"> 165</span></a><span class="sd"> Checks whether a Literal expression is a number.</span>
</span><span id="L-166"><a href="#L-166"><span class="linenos"> 166</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-167"><a href="#L-167"><span class="linenos"> 167</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
</span><span id="L-168"><a href="#L-168"><span class="linenos"> 168</span></a>
</span><span id="L-169"><a href="#L-169"><span class="linenos"> 169</span></a> <span class="nd">@property</span>
</span><span id="L-170"><a href="#L-170"><span class="linenos"> 170</span></a> <span class="k">def</span> <span class="nf">is_int</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-171"><a href="#L-171"><span class="linenos"> 171</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-172"><a href="#L-172"><span class="linenos"> 172</span></a><span class="sd"> Checks whether a Literal expression is an integer.</span>
</span><span id="L-173"><a href="#L-173"><span class="linenos"> 173</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-174"><a href="#L-174"><span class="linenos"> 174</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_number</span><span class="p">:</span>
</span><span id="L-175"><a href="#L-175"><span class="linenos"> 175</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="L-176"><a href="#L-176"><span class="linenos"> 176</span></a> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</span><span id="L-177"><a href="#L-177"><span class="linenos"> 177</span></a> <span class="k">return</span> <span class="kc">True</span>
</span><span id="L-178"><a href="#L-178"><span class="linenos"> 178</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
</span><span id="L-179"><a href="#L-179"><span class="linenos"> 179</span></a> <span class="k">pass</span>
</span><span id="L-180"><a href="#L-180"><span class="linenos"> 180</span></a> <span class="k">return</span> <span class="kc">False</span>
</span><span id="L-181"><a href="#L-181"><span class="linenos"> 181</span></a>
</span><span id="L-182"><a href="#L-182"><span class="linenos"> 182</span></a> <span class="nd">@property</span>
</span><span id="L-183"><a href="#L-183"><span class="linenos"> 183</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-184"><a href="#L-184"><span class="linenos"> 184</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Checks whether an expression is a star.&quot;&quot;&quot;</span>
</span><span id="L-185"><a href="#L-185"><span class="linenos"> 185</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Star</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Star</span><span class="p">))</span>
</span><span id="L-186"><a href="#L-186"><span class="linenos"> 186</span></a>
</span><span id="L-187"><a href="#L-187"><span class="linenos"> 187</span></a> <span class="nd">@property</span>
</span><span id="L-188"><a href="#L-188"><span class="linenos"> 188</span></a> <span class="k">def</span> <span class="nf">alias</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-189"><a href="#L-189"><span class="linenos"> 189</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-190"><a href="#L-190"><span class="linenos"> 190</span></a><span class="sd"> Returns the alias of the expression, or an empty string if it&#39;s not aliased.</span>
</span><span id="L-191"><a href="#L-191"><span class="linenos"> 191</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-192"><a href="#L-192"><span class="linenos"> 192</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</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;alias&quot;</span><span class="p">),</span> <span class="n">TableAlias</span><span class="p">):</span>
</span><span id="L-193"><a href="#L-193"><span class="linenos"> 193</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;alias&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-194"><a href="#L-194"><span class="linenos"> 194</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
</span><span id="L-195"><a href="#L-195"><span class="linenos"> 195</span></a>
</span><span id="L-196"><a href="#L-196"><span class="linenos"> 196</span></a> <span class="nd">@property</span>
</span><span id="L-197"><a href="#L-197"><span class="linenos"> 197</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-198"><a href="#L-198"><span class="linenos"> 198</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">)</span>
</span><span id="L-199"><a href="#L-199"><span class="linenos"> 199</span></a>
</span><span id="L-200"><a href="#L-200"><span class="linenos"> 200</span></a> <span class="nd">@property</span>
</span><span id="L-201"><a href="#L-201"><span class="linenos"> 201</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-202"><a href="#L-202"><span class="linenos"> 202</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-203"><a href="#L-203"><span class="linenos"> 203</span></a>
</span><span id="L-204"><a href="#L-204"><span class="linenos"> 204</span></a> <span class="nd">@property</span>
</span><span id="L-205"><a href="#L-205"><span class="linenos"> 205</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-206"><a href="#L-206"><span class="linenos"> 206</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-207"><a href="#L-207"><span class="linenos"> 207</span></a><span class="sd"> Name of the output column if this expression is a selection.</span>
</span><span id="L-208"><a href="#L-208"><span class="linenos"> 208</span></a>
</span><span id="L-209"><a href="#L-209"><span class="linenos"> 209</span></a><span class="sd"> If the Expression has no output name, an empty string is returned.</span>
</span><span id="L-210"><a href="#L-210"><span class="linenos"> 210</span></a>
</span><span id="L-211"><a href="#L-211"><span class="linenos"> 211</span></a><span class="sd"> Example:</span>
</span><span id="L-212"><a href="#L-212"><span class="linenos"> 212</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
</span><span id="L-213"><a href="#L-213"><span class="linenos"> 213</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
</span><span id="L-214"><a href="#L-214"><span class="linenos"> 214</span></a><span class="sd"> &#39;a&#39;</span>
</span><span id="L-215"><a href="#L-215"><span class="linenos"> 215</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT b AS c&quot;).expressions[0].output_name</span>
</span><span id="L-216"><a href="#L-216"><span class="linenos"> 216</span></a><span class="sd"> &#39;c&#39;</span>
</span><span id="L-217"><a href="#L-217"><span class="linenos"> 217</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
</span><span id="L-218"><a href="#L-218"><span class="linenos"> 218</span></a><span class="sd"> &#39;&#39;</span>
</span><span id="L-219"><a href="#L-219"><span class="linenos"> 219</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-220"><a href="#L-220"><span class="linenos"> 220</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
</span><span id="L-221"><a href="#L-221"><span class="linenos"> 221</span></a>
</span><span id="L-222"><a href="#L-222"><span class="linenos"> 222</span></a> <span class="nd">@property</span>
</span><span id="L-223"><a href="#L-223"><span class="linenos"> 223</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]:</span>
</span><span id="L-224"><a href="#L-224"><span class="linenos"> 224</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span>
</span><span id="L-225"><a href="#L-225"><span class="linenos"> 225</span></a>
</span><span id="L-226"><a href="#L-226"><span class="linenos"> 226</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
</span><span id="L-227"><a href="#L-227"><span class="linenos"> 227</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span> <span class="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-228"><a href="#L-228"><span class="linenos"> 228</span></a> <span class="k">if</span> <span class="n">dtype</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
</span><span id="L-229"><a href="#L-229"><span class="linenos"> 229</span></a> <span class="n">dtype</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
</span><span id="L-230"><a href="#L-230"><span class="linenos"> 230</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="n">dtype</span> <span class="c1"># type: ignore</span>
</span><span id="L-231"><a href="#L-231"><span class="linenos"> 231</span></a>
</span><span id="L-232"><a href="#L-232"><span class="linenos"> 232</span></a> <span class="nd">@property</span>
</span><span id="L-233"><a href="#L-233"><span class="linenos"> 233</span></a> <span class="k">def</span> <span class="nf">meta</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
</span><span id="L-234"><a href="#L-234"><span class="linenos"> 234</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-235"><a href="#L-235"><span class="linenos"> 235</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-236"><a href="#L-236"><span class="linenos"> 236</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span>
</span><span id="L-237"><a href="#L-237"><span class="linenos"> 237</span></a>
</span><span id="L-238"><a href="#L-238"><span class="linenos"> 238</span></a> <span class="k">def</span> <span class="nf">__deepcopy__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">memo</span><span class="p">):</span>
</span><span id="L-239"><a href="#L-239"><span class="linenos"> 239</span></a> <span class="n">copy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">(</span><span class="o">**</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">))</span>
</span><span id="L-240"><a href="#L-240"><span class="linenos"> 240</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-241"><a href="#L-241"><span class="linenos"> 241</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">)</span>
</span><span id="L-242"><a href="#L-242"><span class="linenos"> 242</span></a>
</span><span id="L-243"><a href="#L-243"><span class="linenos"> 243</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-244"><a href="#L-244"><span class="linenos"> 244</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
</span><span id="L-245"><a href="#L-245"><span class="linenos"> 245</span></a>
</span><span id="L-246"><a href="#L-246"><span class="linenos"> 246</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-247"><a href="#L-247"><span class="linenos"> 247</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">)</span>
</span><span id="L-248"><a href="#L-248"><span class="linenos"> 248</span></a>
</span><span id="L-249"><a href="#L-249"><span class="linenos"> 249</span></a> <span class="k">return</span> <span class="n">copy</span>
</span><span id="L-250"><a href="#L-250"><span class="linenos"> 250</span></a>
</span><span id="L-251"><a href="#L-251"><span class="linenos"> 251</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-252"><a href="#L-252"><span class="linenos"> 252</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-253"><a href="#L-253"><span class="linenos"> 253</span></a><span class="sd"> Returns a deep copy of the expression.</span>
</span><span id="L-254"><a href="#L-254"><span class="linenos"> 254</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-255"><a href="#L-255"><span class="linenos"> 255</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</span><span id="L-256"><a href="#L-256"><span class="linenos"> 256</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="L-257"><a href="#L-257"><span class="linenos"> 257</span></a> <span class="k">return</span> <span class="n">new</span>
</span><span id="L-258"><a href="#L-258"><span class="linenos"> 258</span></a>
</span><span id="L-259"><a href="#L-259"><span class="linenos"> 259</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-260"><a href="#L-260"><span class="linenos"> 260</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-261"><a href="#L-261"><span class="linenos"> 261</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-262"><a href="#L-262"><span class="linenos"> 262</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
</span><span id="L-263"><a href="#L-263"><span class="linenos"> 263</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">comments</span><span class="p">)</span>
</span><span id="L-264"><a href="#L-264"><span class="linenos"> 264</span></a>
</span><span id="L-265"><a href="#L-265"><span class="linenos"> 265</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-266"><a href="#L-266"><span class="linenos"> 266</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-267"><a href="#L-267"><span class="linenos"> 267</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
</span><span id="L-268"><a href="#L-268"><span class="linenos"> 268</span></a>
</span><span id="L-269"><a href="#L-269"><span class="linenos"> 269</span></a><span class="sd"> Args:</span>
</span><span id="L-270"><a href="#L-270"><span class="linenos"> 270</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
</span><span id="L-271"><a href="#L-271"><span class="linenos"> 271</span></a><span class="sd"> value (Any): value to append to the list</span>
</span><span id="L-272"><a href="#L-272"><span class="linenos"> 272</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-273"><a href="#L-273"><span class="linenos"> 273</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</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="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
</span><span id="L-274"><a href="#L-274"><span class="linenos"> 274</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-275"><a href="#L-275"><span class="linenos"> 275</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
</span><span id="L-276"><a href="#L-276"><span class="linenos"> 276</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span><span id="L-277"><a href="#L-277"><span class="linenos"> 277</span></a>
</span><span id="L-278"><a href="#L-278"><span class="linenos"> 278</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-279"><a href="#L-279"><span class="linenos"> 279</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-280"><a href="#L-280"><span class="linenos"> 280</span></a><span class="sd"> Sets `arg_key` to `value`.</span>
</span><span id="L-281"><a href="#L-281"><span class="linenos"> 281</span></a>
</span><span id="L-282"><a href="#L-282"><span class="linenos"> 282</span></a><span class="sd"> Args:</span>
</span><span id="L-283"><a href="#L-283"><span class="linenos"> 283</span></a><span class="sd"> arg_key (str): name of the expression arg.</span>
</span><span id="L-284"><a href="#L-284"><span class="linenos"> 284</span></a><span class="sd"> value: value to set the arg to.</span>
</span><span id="L-285"><a href="#L-285"><span class="linenos"> 285</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-286"><a href="#L-286"><span class="linenos"> 286</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
</span><span id="L-287"><a href="#L-287"><span class="linenos"> 287</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span><span id="L-288"><a href="#L-288"><span class="linenos"> 288</span></a>
</span><span id="L-289"><a href="#L-289"><span class="linenos"> 289</span></a> <span class="k">def</span> <span class="nf">_set_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-290"><a href="#L-290"><span class="linenos"> 290</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
</span><span id="L-291"><a href="#L-291"><span class="linenos"> 291</span></a> <span class="n">value</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
</span><span id="L-292"><a href="#L-292"><span class="linenos"> 292</span></a> <span class="n">value</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
</span><span id="L-293"><a href="#L-293"><span class="linenos"> 293</span></a> <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
</span><span id="L-294"><a href="#L-294"><span class="linenos"> 294</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
</span><span id="L-295"><a href="#L-295"><span class="linenos"> 295</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
</span><span id="L-296"><a href="#L-296"><span class="linenos"> 296</span></a> <span class="n">v</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
</span><span id="L-297"><a href="#L-297"><span class="linenos"> 297</span></a> <span class="n">v</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
</span><span id="L-298"><a href="#L-298"><span class="linenos"> 298</span></a>
</span><span id="L-299"><a href="#L-299"><span class="linenos"> 299</span></a> <span class="nd">@property</span>
</span><span id="L-300"><a href="#L-300"><span class="linenos"> 300</span></a> <span class="k">def</span> <span class="nf">depth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
</span><span id="L-301"><a href="#L-301"><span class="linenos"> 301</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-302"><a href="#L-302"><span class="linenos"> 302</span></a><span class="sd"> Returns the depth of this tree.</span>
</span><span id="L-303"><a href="#L-303"><span class="linenos"> 303</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-304"><a href="#L-304"><span class="linenos"> 304</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
</span><span id="L-305"><a href="#L-305"><span class="linenos"> 305</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">depth</span> <span class="o">+</span> <span class="mi">1</span>
</span><span id="L-306"><a href="#L-306"><span class="linenos"> 306</span></a> <span class="k">return</span> <span class="mi">0</span>
</span><span id="L-307"><a href="#L-307"><span class="linenos"> 307</span></a>
</span><span id="L-308"><a href="#L-308"><span class="linenos"> 308</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
</span><span id="L-309"><a href="#L-309"><span class="linenos"> 309</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
</span><span id="L-310"><a href="#L-310"><span class="linenos"> 310</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="L-311"><a href="#L-311"><span class="linenos"> 311</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
</span><span id="L-312"><a href="#L-312"><span class="linenos"> 312</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
</span><span id="L-313"><a href="#L-313"><span class="linenos"> 313</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
</span><span id="L-314"><a href="#L-314"><span class="linenos"> 314</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
</span><span id="L-315"><a href="#L-315"><span class="linenos"> 315</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-316"><a href="#L-316"><span class="linenos"> 316</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
</span><span id="L-317"><a href="#L-317"><span class="linenos"> 317</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
</span><span id="L-318"><a href="#L-318"><span class="linenos"> 318</span></a>
</span><span id="L-319"><a href="#L-319"><span class="linenos"> 319</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
</span><span id="L-320"><a href="#L-320"><span class="linenos"> 320</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-321"><a href="#L-321"><span class="linenos"> 321</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
</span><span id="L-322"><a href="#L-322"><span class="linenos"> 322</span></a><span class="sd"> the specified types.</span>
</span><span id="L-323"><a href="#L-323"><span class="linenos"> 323</span></a>
</span><span id="L-324"><a href="#L-324"><span class="linenos"> 324</span></a><span class="sd"> Args:</span>
</span><span id="L-325"><a href="#L-325"><span class="linenos"> 325</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
</span><span id="L-326"><a href="#L-326"><span class="linenos"> 326</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
</span><span id="L-327"><a href="#L-327"><span class="linenos"> 327</span></a>
</span><span id="L-328"><a href="#L-328"><span class="linenos"> 328</span></a><span class="sd"> Returns:</span>
</span><span id="L-329"><a href="#L-329"><span class="linenos"> 329</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
</span><span id="L-330"><a href="#L-330"><span class="linenos"> 330</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-331"><a href="#L-331"><span class="linenos"> 331</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="L-332"><a href="#L-332"><span class="linenos"> 332</span></a>
</span><span id="L-333"><a href="#L-333"><span class="linenos"> 333</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
</span><span id="L-334"><a href="#L-334"><span class="linenos"> 334</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-335"><a href="#L-335"><span class="linenos"> 335</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
</span><span id="L-336"><a href="#L-336"><span class="linenos"> 336</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
</span><span id="L-337"><a href="#L-337"><span class="linenos"> 337</span></a>
</span><span id="L-338"><a href="#L-338"><span class="linenos"> 338</span></a><span class="sd"> Args:</span>
</span><span id="L-339"><a href="#L-339"><span class="linenos"> 339</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
</span><span id="L-340"><a href="#L-340"><span class="linenos"> 340</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
</span><span id="L-341"><a href="#L-341"><span class="linenos"> 341</span></a>
</span><span id="L-342"><a href="#L-342"><span class="linenos"> 342</span></a><span class="sd"> Returns:</span>
</span><span id="L-343"><a href="#L-343"><span class="linenos"> 343</span></a><span class="sd"> The generator object.</span>
</span><span id="L-344"><a href="#L-344"><span class="linenos"> 344</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-345"><a href="#L-345"><span class="linenos"> 345</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
</span><span id="L-346"><a href="#L-346"><span class="linenos"> 346</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
</span><span id="L-347"><a href="#L-347"><span class="linenos"> 347</span></a> <span class="k">yield</span> <span class="n">expression</span>
</span><span id="L-348"><a href="#L-348"><span class="linenos"> 348</span></a>
</span><span id="L-349"><a href="#L-349"><span class="linenos"> 349</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
</span><span id="L-350"><a href="#L-350"><span class="linenos"> 350</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-351"><a href="#L-351"><span class="linenos"> 351</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
</span><span id="L-352"><a href="#L-352"><span class="linenos"> 352</span></a>
</span><span id="L-353"><a href="#L-353"><span class="linenos"> 353</span></a><span class="sd"> Args:</span>
</span><span id="L-354"><a href="#L-354"><span class="linenos"> 354</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
</span><span id="L-355"><a href="#L-355"><span class="linenos"> 355</span></a>
</span><span id="L-356"><a href="#L-356"><span class="linenos"> 356</span></a><span class="sd"> Returns:</span>
</span><span id="L-357"><a href="#L-357"><span class="linenos"> 357</span></a><span class="sd"> The parent node.</span>
</span><span id="L-358"><a href="#L-358"><span class="linenos"> 358</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-359"><a href="#L-359"><span class="linenos"> 359</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="L-360"><a href="#L-360"><span class="linenos"> 360</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
</span><span id="L-361"><a href="#L-361"><span class="linenos"> 361</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
</span><span id="L-362"><a href="#L-362"><span class="linenos"> 362</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
</span><span id="L-363"><a href="#L-363"><span class="linenos"> 363</span></a>
</span><span id="L-364"><a href="#L-364"><span class="linenos"> 364</span></a> <span class="nd">@property</span>
</span><span id="L-365"><a href="#L-365"><span class="linenos"> 365</span></a> <span class="k">def</span> <span class="nf">parent_select</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Select</span><span class="p">]:</span>
</span><span id="L-366"><a href="#L-366"><span class="linenos"> 366</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-367"><a href="#L-367"><span class="linenos"> 367</span></a><span class="sd"> Returns the parent select statement.</span>
</span><span id="L-368"><a href="#L-368"><span class="linenos"> 368</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-369"><a href="#L-369"><span class="linenos"> 369</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">Select</span><span class="p">)</span>
</span><span id="L-370"><a href="#L-370"><span class="linenos"> 370</span></a>
</span><span id="L-371"><a href="#L-371"><span class="linenos"> 371</span></a> <span class="nd">@property</span>
</span><span id="L-372"><a href="#L-372"><span class="linenos"> 372</span></a> <span class="k">def</span> <span class="nf">same_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-373"><a href="#L-373"><span class="linenos"> 373</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns if the parent is the same class as itself.&quot;&quot;&quot;</span>
</span><span id="L-374"><a href="#L-374"><span class="linenos"> 374</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span>
</span><span id="L-375"><a href="#L-375"><span class="linenos"> 375</span></a>
</span><span id="L-376"><a href="#L-376"><span class="linenos"> 376</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="L-377"><a href="#L-377"><span class="linenos"> 377</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-378"><a href="#L-378"><span class="linenos"> 378</span></a><span class="sd"> Returns the root expression of this tree.</span>
</span><span id="L-379"><a href="#L-379"><span class="linenos"> 379</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-380"><a href="#L-380"><span class="linenos"> 380</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
</span><span id="L-381"><a href="#L-381"><span class="linenos"> 381</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
</span><span id="L-382"><a href="#L-382"><span class="linenos"> 382</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
</span><span id="L-383"><a href="#L-383"><span class="linenos"> 383</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="L-384"><a href="#L-384"><span class="linenos"> 384</span></a>
</span><span id="L-385"><a href="#L-385"><span class="linenos"> 385</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-386"><a href="#L-386"><span class="linenos"> 386</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-387"><a href="#L-387"><span class="linenos"> 387</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
</span><span id="L-388"><a href="#L-388"><span class="linenos"> 388</span></a>
</span><span id="L-389"><a href="#L-389"><span class="linenos"> 389</span></a><span class="sd"> Args:</span>
</span><span id="L-390"><a href="#L-390"><span class="linenos"> 390</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
</span><span id="L-391"><a href="#L-391"><span class="linenos"> 391</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
</span><span id="L-392"><a href="#L-392"><span class="linenos"> 392</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
</span><span id="L-393"><a href="#L-393"><span class="linenos"> 393</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
</span><span id="L-394"><a href="#L-394"><span class="linenos"> 394</span></a>
</span><span id="L-395"><a href="#L-395"><span class="linenos"> 395</span></a><span class="sd"> Returns:</span>
</span><span id="L-396"><a href="#L-396"><span class="linenos"> 396</span></a><span class="sd"> the generator object.</span>
</span><span id="L-397"><a href="#L-397"><span class="linenos"> 397</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-398"><a href="#L-398"><span class="linenos"> 398</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
</span><span id="L-399"><a href="#L-399"><span class="linenos"> 399</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
</span><span id="L-400"><a href="#L-400"><span class="linenos"> 400</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-401"><a href="#L-401"><span class="linenos"> 401</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
</span><span id="L-402"><a href="#L-402"><span class="linenos"> 402</span></a>
</span><span id="L-403"><a href="#L-403"><span class="linenos"> 403</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-404"><a href="#L-404"><span class="linenos"> 404</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-405"><a href="#L-405"><span class="linenos"> 405</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
</span><span id="L-406"><a href="#L-406"><span class="linenos"> 406</span></a><span class="sd"> the DFS (Depth-first) order.</span>
</span><span id="L-407"><a href="#L-407"><span class="linenos"> 407</span></a>
</span><span id="L-408"><a href="#L-408"><span class="linenos"> 408</span></a><span class="sd"> Returns:</span>
</span><span id="L-409"><a href="#L-409"><span class="linenos"> 409</span></a><span class="sd"> The generator object.</span>
</span><span id="L-410"><a href="#L-410"><span class="linenos"> 410</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-411"><a href="#L-411"><span class="linenos"> 411</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="L-412"><a href="#L-412"><span class="linenos"> 412</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
</span><span id="L-413"><a href="#L-413"><span class="linenos"> 413</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
</span><span id="L-414"><a href="#L-414"><span class="linenos"> 414</span></a> <span class="k">return</span>
</span><span id="L-415"><a href="#L-415"><span class="linenos"> 415</span></a>
</span><span id="L-416"><a href="#L-416"><span class="linenos"> 416</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
</span><span id="L-417"><a href="#L-417"><span class="linenos"> 417</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
</span><span id="L-418"><a href="#L-418"><span class="linenos"> 418</span></a>
</span><span id="L-419"><a href="#L-419"><span class="linenos"> 419</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="L-420"><a href="#L-420"><span class="linenos"> 420</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-421"><a href="#L-421"><span class="linenos"> 421</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
</span><span id="L-422"><a href="#L-422"><span class="linenos"> 422</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
</span><span id="L-423"><a href="#L-423"><span class="linenos"> 423</span></a>
</span><span id="L-424"><a href="#L-424"><span class="linenos"> 424</span></a><span class="sd"> Returns:</span>
</span><span id="L-425"><a href="#L-425"><span class="linenos"> 425</span></a><span class="sd"> The generator object.</span>
</span><span id="L-426"><a href="#L-426"><span class="linenos"> 426</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-427"><a href="#L-427"><span class="linenos"> 427</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
</span><span id="L-428"><a href="#L-428"><span class="linenos"> 428</span></a>
</span><span id="L-429"><a href="#L-429"><span class="linenos"> 429</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
</span><span id="L-430"><a href="#L-430"><span class="linenos"> 430</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
</span><span id="L-431"><a href="#L-431"><span class="linenos"> 431</span></a>
</span><span id="L-432"><a href="#L-432"><span class="linenos"> 432</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
</span><span id="L-433"><a href="#L-433"><span class="linenos"> 433</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
</span><span id="L-434"><a href="#L-434"><span class="linenos"> 434</span></a> <span class="k">continue</span>
</span><span id="L-435"><a href="#L-435"><span class="linenos"> 435</span></a>
</span><span id="L-436"><a href="#L-436"><span class="linenos"> 436</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
</span><span id="L-437"><a href="#L-437"><span class="linenos"> 437</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
</span><span id="L-438"><a href="#L-438"><span class="linenos"> 438</span></a>
</span><span id="L-439"><a href="#L-439"><span class="linenos"> 439</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-440"><a href="#L-440"><span class="linenos"> 440</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-441"><a href="#L-441"><span class="linenos"> 441</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
</span><span id="L-442"><a href="#L-442"><span class="linenos"> 442</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-443"><a href="#L-443"><span class="linenos"> 443</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
</span><span id="L-444"><a href="#L-444"><span class="linenos"> 444</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
</span><span id="L-445"><a href="#L-445"><span class="linenos"> 445</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
</span><span id="L-446"><a href="#L-446"><span class="linenos"> 446</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="L-447"><a href="#L-447"><span class="linenos"> 447</span></a>
</span><span id="L-448"><a href="#L-448"><span class="linenos"> 448</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-449"><a href="#L-449"><span class="linenos"> 449</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-450"><a href="#L-450"><span class="linenos"> 450</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
</span><span id="L-451"><a href="#L-451"><span class="linenos"> 451</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-452"><a href="#L-452"><span class="linenos"> 452</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
</span><span id="L-453"><a href="#L-453"><span class="linenos"> 453</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
</span><span id="L-454"><a href="#L-454"><span class="linenos"> 454</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="L-455"><a href="#L-455"><span class="linenos"> 455</span></a>
</span><span id="L-456"><a href="#L-456"><span class="linenos"> 456</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-457"><a href="#L-457"><span class="linenos"> 457</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-458"><a href="#L-458"><span class="linenos"> 458</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
</span><span id="L-459"><a href="#L-459"><span class="linenos"> 459</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-460"><a href="#L-460"><span class="linenos"> 460</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
</span><span id="L-461"><a href="#L-461"><span class="linenos"> 461</span></a>
</span><span id="L-462"><a href="#L-462"><span class="linenos"> 462</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-463"><a href="#L-463"><span class="linenos"> 463</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-464"><a href="#L-464"><span class="linenos"> 464</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</span>
</span><span id="L-465"><a href="#L-465"><span class="linenos"> 465</span></a>
</span><span id="L-466"><a href="#L-466"><span class="linenos"> 466</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
</span><span id="L-467"><a href="#L-467"><span class="linenos"> 467</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-468"><a href="#L-468"><span class="linenos"> 468</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
</span><span id="L-469"><a href="#L-469"><span class="linenos"> 469</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
</span><span id="L-470"><a href="#L-470"><span class="linenos"> 470</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
</span><span id="L-471"><a href="#L-471"><span class="linenos"> 471</span></a>
</span><span id="L-472"><a href="#L-472"><span class="linenos"> 472</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-473"><a href="#L-473"><span class="linenos"> 473</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
</span><span id="L-474"><a href="#L-474"><span class="linenos"> 474</span></a>
</span><span id="L-475"><a href="#L-475"><span class="linenos"> 475</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-476"><a href="#L-476"><span class="linenos"> 476</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_to_s</span><span class="p">()</span>
</span><span id="L-477"><a href="#L-477"><span class="linenos"> 477</span></a>
</span><span id="L-478"><a href="#L-478"><span class="linenos"> 478</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-479"><a href="#L-479"><span class="linenos"> 479</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-480"><a href="#L-480"><span class="linenos"> 480</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
</span><span id="L-481"><a href="#L-481"><span class="linenos"> 481</span></a>
</span><span id="L-482"><a href="#L-482"><span class="linenos"> 482</span></a><span class="sd"> Args:</span>
</span><span id="L-483"><a href="#L-483"><span class="linenos"> 483</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
</span><span id="L-484"><a href="#L-484"><span class="linenos"> 484</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
</span><span id="L-485"><a href="#L-485"><span class="linenos"> 485</span></a>
</span><span id="L-486"><a href="#L-486"><span class="linenos"> 486</span></a><span class="sd"> Returns:</span>
</span><span id="L-487"><a href="#L-487"><span class="linenos"> 487</span></a><span class="sd"> The SQL string.</span>
</span><span id="L-488"><a href="#L-488"><span class="linenos"> 488</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-489"><a href="#L-489"><span class="linenos"> 489</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
</span><span id="L-490"><a href="#L-490"><span class="linenos"> 490</span></a>
</span><span id="L-491"><a href="#L-491"><span class="linenos"> 491</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-492"><a href="#L-492"><span class="linenos"> 492</span></a>
</span><span id="L-493"><a href="#L-493"><span class="linenos"> 493</span></a> <span class="k">def</span> <span class="nf">_to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hide_missing</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-494"><a href="#L-494"><span class="linenos"> 494</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">level</span> <span class="k">else</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
</span><span id="L-495"><a href="#L-495"><span class="linenos"> 495</span></a> <span class="n">indent</span> <span class="o">+=</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s2">&quot; &quot;</span><span class="p">]</span> <span class="o">*</span> <span class="n">level</span><span class="p">)</span>
</span><span id="L-496"><a href="#L-496"><span class="linenos"> 496</span></a> <span class="n">left</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> &quot;</span>
</span><span id="L-497"><a href="#L-497"><span class="linenos"> 497</span></a>
</span><span id="L-498"><a href="#L-498"><span class="linenos"> 498</span></a> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-499"><a href="#L-499"><span class="linenos"> 499</span></a> <span class="n">k</span><span class="p">:</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
</span><span id="L-500"><a href="#L-500"><span class="linenos"> 500</span></a> <span class="n">v</span><span class="o">.</span><span class="n">_to_s</span><span class="p">(</span><span class="n">hide_missing</span><span class="o">=</span><span class="n">hide_missing</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
</span><span id="L-501"><a href="#L-501"><span class="linenos"> 501</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;_to_s&quot;</span><span class="p">)</span>
</span><span id="L-502"><a href="#L-502"><span class="linenos"> 502</span></a> <span class="k">else</span> <span class="nb">str</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
</span><span id="L-503"><a href="#L-503"><span class="linenos"> 503</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span>
</span><span id="L-504"><a href="#L-504"><span class="linenos"> 504</span></a> <span class="k">if</span> <span class="n">v</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
</span><span id="L-505"><a href="#L-505"><span class="linenos"> 505</span></a> <span class="p">)</span>
</span><span id="L-506"><a href="#L-506"><span class="linenos"> 506</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
</span><span id="L-507"><a href="#L-507"><span class="linenos"> 507</span></a> <span class="p">}</span>
</span><span id="L-508"><a href="#L-508"><span class="linenos"> 508</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;comments&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span>
</span><span id="L-509"><a href="#L-509"><span class="linenos"> 509</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;type&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span>
</span><span id="L-510"><a href="#L-510"><span class="linenos"> 510</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">hide_missing</span><span class="p">}</span>
</span><span id="L-511"><a href="#L-511"><span class="linenos"> 511</span></a>
</span><span id="L-512"><a href="#L-512"><span class="linenos"> 512</span></a> <span class="n">right</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">v</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
</span><span id="L-513"><a href="#L-513"><span class="linenos"> 513</span></a> <span class="n">right</span> <span class="o">+=</span> <span class="s2">&quot;)&quot;</span>
</span><span id="L-514"><a href="#L-514"><span class="linenos"> 514</span></a>
</span><span id="L-515"><a href="#L-515"><span class="linenos"> 515</span></a> <span class="k">return</span> <span class="n">indent</span> <span class="o">+</span> <span class="n">left</span> <span class="o">+</span> <span class="n">right</span>
</span><span id="L-516"><a href="#L-516"><span class="linenos"> 516</span></a>
</span><span id="L-517"><a href="#L-517"><span class="linenos"> 517</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="L-518"><a href="#L-518"><span class="linenos"> 518</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-519"><a href="#L-519"><span class="linenos"> 519</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
</span><span id="L-520"><a href="#L-520"><span class="linenos"> 520</span></a><span class="sd"> and applies the given transformation function to each node.</span>
</span><span id="L-521"><a href="#L-521"><span class="linenos"> 521</span></a>
</span><span id="L-522"><a href="#L-522"><span class="linenos"> 522</span></a><span class="sd"> Args:</span>
</span><span id="L-523"><a href="#L-523"><span class="linenos"> 523</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
</span><span id="L-524"><a href="#L-524"><span class="linenos"> 524</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
</span><span id="L-525"><a href="#L-525"><span class="linenos"> 525</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
</span><span id="L-526"><a href="#L-526"><span class="linenos"> 526</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
</span><span id="L-527"><a href="#L-527"><span class="linenos"> 527</span></a><span class="sd"> modified in place.</span>
</span><span id="L-528"><a href="#L-528"><span class="linenos"> 528</span></a>
</span><span id="L-529"><a href="#L-529"><span class="linenos"> 529</span></a><span class="sd"> Returns:</span>
</span><span id="L-530"><a href="#L-530"><span class="linenos"> 530</span></a><span class="sd"> The transformed tree.</span>
</span><span id="L-531"><a href="#L-531"><span class="linenos"> 531</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-532"><a href="#L-532"><span class="linenos"> 532</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
</span><span id="L-533"><a href="#L-533"><span class="linenos"> 533</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="L-534"><a href="#L-534"><span class="linenos"> 534</span></a>
</span><span id="L-535"><a href="#L-535"><span class="linenos"> 535</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="L-536"><a href="#L-536"><span class="linenos"> 536</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span><span id="L-537"><a href="#L-537"><span class="linenos"> 537</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
</span><span id="L-538"><a href="#L-538"><span class="linenos"> 538</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
</span><span id="L-539"><a href="#L-539"><span class="linenos"> 539</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span><span id="L-540"><a href="#L-540"><span class="linenos"> 540</span></a>
</span><span id="L-541"><a href="#L-541"><span class="linenos"> 541</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
</span><span id="L-542"><a href="#L-542"><span class="linenos"> 542</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span><span id="L-543"><a href="#L-543"><span class="linenos"> 543</span></a>
</span><span id="L-544"><a href="#L-544"><span class="linenos"> 544</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
</span><span id="L-545"><a href="#L-545"><span class="linenos"> 545</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="L-546"><a href="#L-546"><span class="linenos"> 546</span></a> <span class="o">...</span>
</span><span id="L-547"><a href="#L-547"><span class="linenos"> 547</span></a>
</span><span id="L-548"><a href="#L-548"><span class="linenos"> 548</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
</span><span id="L-549"><a href="#L-549"><span class="linenos"> 549</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-550"><a href="#L-550"><span class="linenos"> 550</span></a> <span class="o">...</span>
</span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a>
</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
</span><span id="L-553"><a href="#L-553"><span class="linenos"> 553</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a><span class="sd"> Swap out this expression with a new expression.</span>
</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a>
</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a><span class="sd"> For example::</span>
</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a>
</span><span id="L-558"><a href="#L-558"><span class="linenos"> 558</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
</span><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a><span class="sd"> (COLUMN this: y)</span>
</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
</span><span id="L-563"><a href="#L-563"><span class="linenos"> 563</span></a>
</span><span id="L-564"><a href="#L-564"><span class="linenos"> 564</span></a><span class="sd"> Args:</span>
</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a><span class="sd"> expression: new node</span>
</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a>
</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a><span class="sd"> Returns:</span>
</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a><span class="sd"> The new expression or expressions.</span>
</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a>
</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-575"><a href="#L-575"><span class="linenos"> 575</span></a>
</span><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a>
</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a><span class="sd"> Remove this expression from its AST.</span>
</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a>
</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a><span class="sd"> Returns:</span>
</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a><span class="sd"> The popped expression.</span>
</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
</span><span id="L-587"><a href="#L-587"><span class="linenos"> 587</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a>
</span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="L-590"><a href="#L-590"><span class="linenos"> 590</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</span></a>
</span><span id="L-593"><a href="#L-593"><span class="linenos"> 593</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a><span class="sd"> Otherwise, this returns this expression.</span>
</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a>
</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a><span class="sd"> Examples:</span>
</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a>
</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
</span><span id="L-604"><a href="#L-604"><span class="linenos"> 604</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a>
</span><span id="L-606"><a href="#L-606"><span class="linenos"> 606</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="L-607"><a href="#L-607"><span class="linenos"> 607</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
</span><span id="L-609"><a href="#L-609"><span class="linenos"> 609</span></a>
</span><span id="L-610"><a href="#L-610"><span class="linenos"> 610</span></a><span class="sd"> Args:</span>
</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
</span><span id="L-612"><a href="#L-612"><span class="linenos"> 612</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
</span><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a>
</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a><span class="sd"> Returns:</span>
</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
</span><span id="L-616"><a href="#L-616"><span class="linenos"> 616</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-617"><a href="#L-617"><span class="linenos"> 617</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-618"><a href="#L-618"><span class="linenos"> 618</span></a>
</span><span id="L-619"><a href="#L-619"><span class="linenos"> 619</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
</span><span id="L-621"><a href="#L-621"><span class="linenos"> 621</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="L-622"><a href="#L-622"><span class="linenos"> 622</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="L-623"><a href="#L-623"><span class="linenos"> 623</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</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="n">k</span><span class="p">)</span>
</span><span id="L-624"><a href="#L-624"><span class="linenos"> 624</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="L-626"><a href="#L-626"><span class="linenos"> 626</span></a>
</span><span id="L-627"><a href="#L-627"><span class="linenos"> 627</span></a> <span class="k">if</span> <span class="p">(</span>
</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a> <span class="n">args</span>
</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
</span><span id="L-630"><a href="#L-630"><span class="linenos"> 630</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
</span><span id="L-631"><a href="#L-631"><span class="linenos"> 631</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</span></a> <span class="p">):</span>
</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
</span><span id="L-635"><a href="#L-635"><span class="linenos"> 635</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
</span><span id="L-636"><a href="#L-636"><span class="linenos"> 636</span></a> <span class="p">)</span>
</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a>
</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a> <span class="k">return</span> <span class="n">errors</span>
</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a>
</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
</span><span id="L-645"><a href="#L-645"><span class="linenos"> 645</span></a>
</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</span><span id="L-647"><a href="#L-647"><span class="linenos"> 647</span></a>
</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a> <span class="nd">@classmethod</span>
</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
</span><span id="L-650"><a href="#L-650"><span class="linenos"> 650</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-651"><a href="#L-651"><span class="linenos"> 651</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
</span><span id="L-654"><a href="#L-654"><span class="linenos"> 654</span></a>
</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
</span><span id="L-656"><a href="#L-656"><span class="linenos"> 656</span></a>
</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a>
</span><span id="L-658"><a href="#L-658"><span class="linenos"> 658</span></a><span class="n">IntoType</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span>
</span><span id="L-659"><a href="#L-659"><span class="linenos"> 659</span></a> <span class="nb">str</span><span class="p">,</span>
</span><span id="L-660"><a href="#L-660"><span class="linenos"> 660</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">],</span>
</span><span id="L-661"><a href="#L-661"><span class="linenos"> 661</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">]]],</span>
</span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</span></a><span class="p">]</span>
</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a><span class="n">ExpOrStr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]</span>
</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</span></a>
</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a>
</span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</span></a><span class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-672"><a href="#L-672"><span class="linenos"> 672</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="L-674"><a href="#L-674"><span class="linenos"> 674</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-675"><a href="#L-675"><span class="linenos"> 675</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
</span><span id="L-676"><a href="#L-676"><span class="linenos"> 676</span></a>
</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a><span class="sd"> Example:</span>
</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
</span><span id="L-680"><a href="#L-680"><span class="linenos"> 680</span></a>
</span><span id="L-681"><a href="#L-681"><span class="linenos"> 681</span></a><span class="sd"> Args:</span>
</span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-683"><a href="#L-683"><span class="linenos"> 683</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-684"><a href="#L-684"><span class="linenos"> 684</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-685"><a href="#L-685"><span class="linenos"> 685</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
</span><span id="L-686"><a href="#L-686"><span class="linenos"> 686</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-687"><a href="#L-687"><span class="linenos"> 687</span></a>
</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a><span class="sd"> Returns:</span>
</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</span></a><span class="sd"> The new And condition.</span>
</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-692"><a href="#L-692"><span class="linenos"> 692</span></a>
</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-696"><a href="#L-696"><span class="linenos"> 696</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-697"><a href="#L-697"><span class="linenos"> 697</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-698"><a href="#L-698"><span class="linenos"> 698</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-699"><a href="#L-699"><span class="linenos"> 699</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="L-700"><a href="#L-700"><span class="linenos"> 700</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-701"><a href="#L-701"><span class="linenos"> 701</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
</span><span id="L-702"><a href="#L-702"><span class="linenos"> 702</span></a>
</span><span id="L-703"><a href="#L-703"><span class="linenos"> 703</span></a><span class="sd"> Example:</span>
</span><span id="L-704"><a href="#L-704"><span class="linenos"> 704</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
</span><span id="L-705"><a href="#L-705"><span class="linenos"> 705</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
</span><span id="L-706"><a href="#L-706"><span class="linenos"> 706</span></a>
</span><span id="L-707"><a href="#L-707"><span class="linenos"> 707</span></a><span class="sd"> Args:</span>
</span><span id="L-708"><a href="#L-708"><span class="linenos"> 708</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-709"><a href="#L-709"><span class="linenos"> 709</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-710"><a href="#L-710"><span class="linenos"> 710</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-711"><a href="#L-711"><span class="linenos"> 711</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
</span><span id="L-712"><a href="#L-712"><span class="linenos"> 712</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-713"><a href="#L-713"><span class="linenos"> 713</span></a>
</span><span id="L-714"><a href="#L-714"><span class="linenos"> 714</span></a><span class="sd"> Returns:</span>
</span><span id="L-715"><a href="#L-715"><span class="linenos"> 715</span></a><span class="sd"> The new Or condition.</span>
</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a>
</span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a><span class="sd"> Wrap this condition with NOT.</span>
</span><span id="L-722"><a href="#L-722"><span class="linenos"> 722</span></a>
</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a><span class="sd"> Example:</span>
</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a>
</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a><span class="sd"> Args:</span>
</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a><span class="sd"> copy: whether or not to copy this object.</span>
</span><span id="L-729"><a href="#L-729"><span class="linenos"> 729</span></a>
</span><span id="L-730"><a href="#L-730"><span class="linenos"> 730</span></a><span class="sd"> Returns:</span>
</span><span id="L-731"><a href="#L-731"><span class="linenos"> 731</span></a><span class="sd"> The new Not instance.</span>
</span><span id="L-732"><a href="#L-732"><span class="linenos"> 732</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-733"><a href="#L-733"><span class="linenos"> 733</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
</span><span id="L-734"><a href="#L-734"><span class="linenos"> 734</span></a>
</span><span id="L-735"><a href="#L-735"><span class="linenos"> 735</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
</span><span id="L-736"><a href="#L-736"><span class="linenos"> 736</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-737"><a href="#L-737"><span class="linenos"> 737</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
</span><span id="L-738"><a href="#L-738"><span class="linenos"> 738</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-739"><a href="#L-739"><span class="linenos"> 739</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-740"><a href="#L-740"><span class="linenos"> 740</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-741"><a href="#L-741"><span class="linenos"> 741</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-742"><a href="#L-742"><span class="linenos"> 742</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
</span><span id="L-743"><a href="#L-743"><span class="linenos"> 743</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-744"><a href="#L-744"><span class="linenos"> 744</span></a>
</span><span id="L-745"><a href="#L-745"><span class="linenos"> 745</span></a> <span class="k">def</span> <span class="nf">_binop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">klass</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="L-746"><a href="#L-746"><span class="linenos"> 746</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
</span><span id="L-747"><a href="#L-747"><span class="linenos"> 747</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">convert</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-748"><a href="#L-748"><span class="linenos"> 748</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">klass</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">klass</span><span class="p">):</span>
</span><span id="L-749"><a href="#L-749"><span class="linenos"> 749</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
</span><span id="L-750"><a href="#L-750"><span class="linenos"> 750</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
</span><span id="L-751"><a href="#L-751"><span class="linenos"> 751</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
</span><span id="L-752"><a href="#L-752"><span class="linenos"> 752</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">other</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">this</span><span class="p">)</span>
</span><span id="L-753"><a href="#L-753"><span class="linenos"> 753</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">other</span><span class="p">)</span>
</span><span id="L-754"><a href="#L-754"><span class="linenos"> 754</span></a>
</span><span id="L-755"><a href="#L-755"><span class="linenos"> 755</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]):</span>
</span><span id="L-756"><a href="#L-756"><span class="linenos"> 756</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
</span><span id="L-757"><a href="#L-757"><span class="linenos"> 757</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">other</span><span class="p">)]</span>
</span><span id="L-758"><a href="#L-758"><span class="linenos"> 758</span></a> <span class="p">)</span>
</span><span id="L-759"><a href="#L-759"><span class="linenos"> 759</span></a>
</span><span id="L-760"><a href="#L-760"><span class="linenos"> 760</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
</span><span id="L-761"><a href="#L-761"><span class="linenos"> 761</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-762"><a href="#L-762"><span class="linenos"> 762</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
</span><span id="L-763"><a href="#L-763"><span class="linenos"> 763</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
</span><span id="L-764"><a href="#L-764"><span class="linenos"> 764</span></a> <span class="n">this</span><span class="o">=</span><span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
</span><span id="L-765"><a href="#L-765"><span class="linenos"> 765</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
</span><span id="L-766"><a href="#L-766"><span class="linenos"> 766</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-767"><a href="#L-767"><span class="linenos"> 767</span></a> <span class="p">)</span>
</span><span id="L-768"><a href="#L-768"><span class="linenos"> 768</span></a>
</span><span id="L-769"><a href="#L-769"><span class="linenos"> 769</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
</span><span id="L-770"><a href="#L-770"><span class="linenos"> 770</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
</span><span id="L-771"><a href="#L-771"><span class="linenos"> 771</span></a> <span class="n">this</span><span class="o">=</span><span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
</span><span id="L-772"><a href="#L-772"><span class="linenos"> 772</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="L-773"><a href="#L-773"><span class="linenos"> 773</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="L-774"><a href="#L-774"><span class="linenos"> 774</span></a> <span class="p">)</span>
</span><span id="L-775"><a href="#L-775"><span class="linenos"> 775</span></a>
</span><span id="L-776"><a href="#L-776"><span class="linenos"> 776</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
</span><span id="L-777"><a href="#L-777"><span class="linenos"> 777</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-778"><a href="#L-778"><span class="linenos"> 778</span></a>
</span><span id="L-779"><a href="#L-779"><span class="linenos"> 779</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
</span><span id="L-780"><a href="#L-780"><span class="linenos"> 780</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-781"><a href="#L-781"><span class="linenos"> 781</span></a>
</span><span id="L-782"><a href="#L-782"><span class="linenos"> 782</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
</span><span id="L-783"><a href="#L-783"><span class="linenos"> 783</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-784"><a href="#L-784"><span class="linenos"> 784</span></a>
</span><span id="L-785"><a href="#L-785"><span class="linenos"> 785</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
</span><span id="L-786"><a href="#L-786"><span class="linenos"> 786</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-787"><a href="#L-787"><span class="linenos"> 787</span></a>
</span><span id="L-788"><a href="#L-788"><span class="linenos"> 788</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
</span><span id="L-789"><a href="#L-789"><span class="linenos"> 789</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-790"><a href="#L-790"><span class="linenos"> 790</span></a>
</span><span id="L-791"><a href="#L-791"><span class="linenos"> 791</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
</span><span id="L-792"><a href="#L-792"><span class="linenos"> 792</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-793"><a href="#L-793"><span class="linenos"> 793</span></a>
</span><span id="L-794"><a href="#L-794"><span class="linenos"> 794</span></a> <span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LT</span><span class="p">:</span>
</span><span id="L-795"><a href="#L-795"><span class="linenos"> 795</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-796"><a href="#L-796"><span class="linenos"> 796</span></a>
</span><span id="L-797"><a href="#L-797"><span class="linenos"> 797</span></a> <span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LTE</span><span class="p">:</span>
</span><span id="L-798"><a href="#L-798"><span class="linenos"> 798</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-799"><a href="#L-799"><span class="linenos"> 799</span></a>
</span><span id="L-800"><a href="#L-800"><span class="linenos"> 800</span></a> <span class="k">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GT</span><span class="p">:</span>
</span><span id="L-801"><a href="#L-801"><span class="linenos"> 801</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-802"><a href="#L-802"><span class="linenos"> 802</span></a>
</span><span id="L-803"><a href="#L-803"><span class="linenos"> 803</span></a> <span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GTE</span><span class="p">:</span>
</span><span id="L-804"><a href="#L-804"><span class="linenos"> 804</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-805"><a href="#L-805"><span class="linenos"> 805</span></a>
</span><span id="L-806"><a href="#L-806"><span class="linenos"> 806</span></a> <span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
</span><span id="L-807"><a href="#L-807"><span class="linenos"> 807</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-808"><a href="#L-808"><span class="linenos"> 808</span></a>
</span><span id="L-809"><a href="#L-809"><span class="linenos"> 809</span></a> <span class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
</span><span id="L-810"><a href="#L-810"><span class="linenos"> 810</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-811"><a href="#L-811"><span class="linenos"> 811</span></a>
</span><span id="L-812"><a href="#L-812"><span class="linenos"> 812</span></a> <span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
</span><span id="L-813"><a href="#L-813"><span class="linenos"> 813</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-814"><a href="#L-814"><span class="linenos"> 814</span></a>
</span><span id="L-815"><a href="#L-815"><span class="linenos"> 815</span></a> <span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
</span><span id="L-816"><a href="#L-816"><span class="linenos"> 816</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-817"><a href="#L-817"><span class="linenos"> 817</span></a>
</span><span id="L-818"><a href="#L-818"><span class="linenos"> 818</span></a> <span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
</span><span id="L-819"><a href="#L-819"><span class="linenos"> 819</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-820"><a href="#L-820"><span class="linenos"> 820</span></a>
</span><span id="L-821"><a href="#L-821"><span class="linenos"> 821</span></a> <span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
</span><span id="L-822"><a href="#L-822"><span class="linenos"> 822</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-823"><a href="#L-823"><span class="linenos"> 823</span></a>
</span><span id="L-824"><a href="#L-824"><span class="linenos"> 824</span></a> <span class="k">def</span> <span class="fm">__truediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
</span><span id="L-825"><a href="#L-825"><span class="linenos"> 825</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-826"><a href="#L-826"><span class="linenos"> 826</span></a>
</span><span id="L-827"><a href="#L-827"><span class="linenos"> 827</span></a> <span class="k">def</span> <span class="fm">__rtruediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
</span><span id="L-828"><a href="#L-828"><span class="linenos"> 828</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-829"><a href="#L-829"><span class="linenos"> 829</span></a>
</span><span id="L-830"><a href="#L-830"><span class="linenos"> 830</span></a> <span class="k">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a>
</span><span id="L-833"><a href="#L-833"><span class="linenos"> 833</span></a> <span class="k">def</span> <span class="fm">__rfloordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
</span><span id="L-834"><a href="#L-834"><span class="linenos"> 834</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-835"><a href="#L-835"><span class="linenos"> 835</span></a>
</span><span id="L-836"><a href="#L-836"><span class="linenos"> 836</span></a> <span class="k">def</span> <span class="fm">__mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
</span><span id="L-837"><a href="#L-837"><span class="linenos"> 837</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-838"><a href="#L-838"><span class="linenos"> 838</span></a>
</span><span id="L-839"><a href="#L-839"><span class="linenos"> 839</span></a> <span class="k">def</span> <span class="fm">__rmod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
</span><span id="L-840"><a href="#L-840"><span class="linenos"> 840</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-841"><a href="#L-841"><span class="linenos"> 841</span></a>
</span><span id="L-842"><a href="#L-842"><span class="linenos"> 842</span></a> <span class="k">def</span> <span class="fm">__pow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
</span><span id="L-843"><a href="#L-843"><span class="linenos"> 843</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-844"><a href="#L-844"><span class="linenos"> 844</span></a>
</span><span id="L-845"><a href="#L-845"><span class="linenos"> 845</span></a> <span class="k">def</span> <span class="fm">__rpow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
</span><span id="L-846"><a href="#L-846"><span class="linenos"> 846</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-847"><a href="#L-847"><span class="linenos"> 847</span></a>
</span><span id="L-848"><a href="#L-848"><span class="linenos"> 848</span></a> <span class="k">def</span> <span class="fm">__and__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
</span><span id="L-849"><a href="#L-849"><span class="linenos"> 849</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a>
</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</span></a> <span class="k">def</span> <span class="fm">__rand__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
</span><span id="L-852"><a href="#L-852"><span class="linenos"> 852</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-853"><a href="#L-853"><span class="linenos"> 853</span></a>
</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</span></a> <span class="k">def</span> <span class="fm">__or__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a>
</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a> <span class="k">def</span> <span class="fm">__ror__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a>
</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a> <span class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Neg</span><span class="p">:</span>
</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</span></a> <span class="k">return</span> <span class="n">Neg</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">Binary</span><span class="p">))</span>
</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</span></a>
</span><span id="L-863"><a href="#L-863"><span class="linenos"> 863</span></a> <span class="k">def</span> <span class="fm">__invert__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
</span><span id="L-864"><a href="#L-864"><span class="linenos"> 864</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span>
</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</span></a>
</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a>
</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="L-868"><a href="#L-868"><span class="linenos"> 868</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Relationships like x = y, x &gt; 1, x &gt;= y.&quot;&quot;&quot;</span>
</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a>
</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a>
</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a> <span class="nd">@property</span>
</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</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;alias&quot;</span><span class="p">)</span>
</span><span id="L-875"><a href="#L-875"><span class="linenos"> 875</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span>
</span><span id="L-876"><a href="#L-876"><span class="linenos"> 876</span></a> <span class="k">return</span> <span class="p">[]</span>
</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a> <span class="n">column_list</span> <span class="o">=</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">assert_is</span><span class="p">(</span><span class="n">TableAlias</span><span class="p">)</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;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">column_list</span><span class="p">]</span>
</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a>
</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a> <span class="nd">@property</span>
</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">selects</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">)</span> <span class="k">else</span> <span class="p">[]</span>
</span><span id="L-883"><a href="#L-883"><span class="linenos"> 883</span></a>
</span><span id="L-884"><a href="#L-884"><span class="linenos"> 884</span></a> <span class="nd">@property</span>
</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">select</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selects</span><span class="p">]</span>
</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a>
</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a>
</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a><span class="k">class</span> <span class="nc">Unionable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a> <span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a><span class="sd"> Builds a UNION expression.</span>
</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a>
</span><span id="L-896"><a href="#L-896"><span class="linenos"> 896</span></a><span class="sd"> Example:</span>
</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="L-898"><a href="#L-898"><span class="linenos"> 898</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).union(&quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="L-899"><a href="#L-899"><span class="linenos"> 899</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
</span><span id="L-900"><a href="#L-900"><span class="linenos"> 900</span></a>
</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a><span class="sd"> Args:</span>
</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a><span class="sd"> expression: the SQL code string.</span>
</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-907"><a href="#L-907"><span class="linenos"> 907</span></a>
</span><span id="L-908"><a href="#L-908"><span class="linenos"> 908</span></a><span class="sd"> Returns:</span>
</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a><span class="sd"> The new Union expression.</span>
</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-912"><a href="#L-912"><span class="linenos"> 912</span></a>
</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</span></a> <span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
</span><span id="L-914"><a href="#L-914"><span class="linenos"> 914</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-915"><a href="#L-915"><span class="linenos"> 915</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
</span><span id="L-916"><a href="#L-916"><span class="linenos"> 916</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-917"><a href="#L-917"><span class="linenos"> 917</span></a><span class="sd"> Builds an INTERSECT expression.</span>
</span><span id="L-918"><a href="#L-918"><span class="linenos"> 918</span></a>
</span><span id="L-919"><a href="#L-919"><span class="linenos"> 919</span></a><span class="sd"> Example:</span>
</span><span id="L-920"><a href="#L-920"><span class="linenos"> 920</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="L-921"><a href="#L-921"><span class="linenos"> 921</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).intersect(&quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="L-922"><a href="#L-922"><span class="linenos"> 922</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
</span><span id="L-923"><a href="#L-923"><span class="linenos"> 923</span></a>
</span><span id="L-924"><a href="#L-924"><span class="linenos"> 924</span></a><span class="sd"> Args:</span>
</span><span id="L-925"><a href="#L-925"><span class="linenos"> 925</span></a><span class="sd"> expression: the SQL code string.</span>
</span><span id="L-926"><a href="#L-926"><span class="linenos"> 926</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-927"><a href="#L-927"><span class="linenos"> 927</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="L-928"><a href="#L-928"><span class="linenos"> 928</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-930"><a href="#L-930"><span class="linenos"> 930</span></a>
</span><span id="L-931"><a href="#L-931"><span class="linenos"> 931</span></a><span class="sd"> Returns:</span>
</span><span id="L-932"><a href="#L-932"><span class="linenos"> 932</span></a><span class="sd"> The new Intersect expression.</span>
</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a>
</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a> <span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</span></a><span class="sd"> Builds an EXCEPT expression.</span>
</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a>
</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a><span class="sd"> Example:</span>
</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).except_(&quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a>
</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a><span class="sd"> Args:</span>
</span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a><span class="sd"> expression: the SQL code string.</span>
</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a>
</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a><span class="sd"> Returns:</span>
</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a><span class="sd"> The new Except expression.</span>
</span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-958"><a href="#L-958"><span class="linenos"> 958</span></a>
</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</span></a>
</span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</span></a><span class="k">class</span> <span class="nc">UDTF</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</span><span class="p">):</span>
</span><span id="L-961"><a href="#L-961"><span class="linenos"> 961</span></a> <span class="nd">@property</span>
</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</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;alias&quot;</span><span class="p">)</span>
</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a> <span class="k">return</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="p">[]</span>
</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a>
</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a>
</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</span></a><span class="k">class</span> <span class="nc">Cache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-968"><a href="#L-968"><span class="linenos"> 968</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</span></a> <span class="s2">&quot;lazy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-972"><a href="#L-972"><span class="linenos"> 972</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></a> <span class="p">}</span>
</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a>
</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a>
</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a><span class="k">class</span> <span class="nc">Uncache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-978"><a href="#L-978"><span class="linenos"> 978</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-979"><a href="#L-979"><span class="linenos"> 979</span></a>
</span><span id="L-980"><a href="#L-980"><span class="linenos"> 980</span></a>
</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a><span class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-984"><a href="#L-984"><span class="linenos"> 984</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-986"><a href="#L-986"><span class="linenos"> 986</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a> <span class="s2">&quot;properties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a> <span class="s2">&quot;replace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-990"><a href="#L-990"><span class="linenos"> 990</span></a> <span class="s2">&quot;unique&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-991"><a href="#L-991"><span class="linenos"> 991</span></a> <span class="s2">&quot;indexes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a> <span class="s2">&quot;no_schema_binding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a> <span class="s2">&quot;begin&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a> <span class="s2">&quot;clone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a> <span class="p">}</span>
</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a>
</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a>
</span><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/sql/create-clone</span>
</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a><span class="k">class</span> <span class="nc">Clone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1002"><a href="#L-1002"><span class="linenos">1002</span></a> <span class="s2">&quot;when&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1003"><a href="#L-1003"><span class="linenos">1003</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1004"><a href="#L-1004"><span class="linenos">1004</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1005"><a href="#L-1005"><span class="linenos">1005</span></a> <span class="p">}</span>
</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</span></a>
</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a>
</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a><span class="k">class</span> <span class="nc">Describe</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1010"><a href="#L-1010"><span class="linenos">1010</span></a>
</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a>
</span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</span></a><span class="k">class</span> <span class="nc">Pragma</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a> <span class="k">pass</span>
</span><span id="L-1014"><a href="#L-1014"><span class="linenos">1014</span></a>
</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a>
</span><span id="L-1016"><a href="#L-1016"><span class="linenos">1016</span></a><span class="k">class</span> <span class="nc">Set</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</span></a>
</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a>
</span><span id="L-1020"><a href="#L-1020"><span class="linenos">1020</span></a><span class="k">class</span> <span class="nc">SetItem</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1023"><a href="#L-1023"><span class="linenos">1023</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1024"><a href="#L-1024"><span class="linenos">1024</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1025"><a href="#L-1025"><span class="linenos">1025</span></a> <span class="s2">&quot;collate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># MySQL SET NAMES statement</span>
</span><span id="L-1026"><a href="#L-1026"><span class="linenos">1026</span></a> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</span></a> <span class="p">}</span>
</span><span id="L-1028"><a href="#L-1028"><span class="linenos">1028</span></a>
</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a>
</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</span></a><span class="k">class</span> <span class="nc">Show</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a> <span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</span></a> <span class="s2">&quot;like&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</span></a> <span class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</span></a> <span class="s2">&quot;full&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</span></a> <span class="s2">&quot;mutex&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1041"><a href="#L-1041"><span class="linenos">1041</span></a> <span class="s2">&quot;query&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> <span class="s2">&quot;channel&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="s2">&quot;log&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a> <span class="s2">&quot;types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a> <span class="p">}</span>
</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</span></a>
</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a>
</span><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</span></a><span class="k">class</span> <span class="nc">UserDefinedFunction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a>
</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a>
</span><span id="L-1054"><a href="#L-1054"><span class="linenos">1054</span></a><span class="k">class</span> <span class="nc">CharacterSet</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1055"><a href="#L-1055"><span class="linenos">1055</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a>
</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a>
</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a><span class="k">class</span> <span class="nc">With</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;recursive&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a>
</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a> <span class="nd">@property</span>
</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a> <span class="k">def</span> <span class="nf">recursive</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-1063"><a href="#L-1063"><span class="linenos">1063</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</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;recursive&quot;</span><span class="p">))</span>
</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a>
</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a>
</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a><span class="k">class</span> <span class="nc">WithinGroup</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a>
</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a>
</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</span></a><span class="k">class</span> <span class="nc">CTE</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">):</span>
</span><span id="L-1071"><a href="#L-1071"><span class="linenos">1071</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a>
</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</span></a>
</span><span id="L-1074"><a href="#L-1074"><span class="linenos">1074</span></a><span class="k">class</span> <span class="nc">TableAlias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a>
</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a> <span class="nd">@property</span>
</span><span id="L-1078"><a href="#L-1078"><span class="linenos">1078</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-1079"><a href="#L-1079"><span class="linenos">1079</span></a> <span class="k">return</span> <span class="bp">self</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;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a>
</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a>
</span><span id="L-1082"><a href="#L-1082"><span class="linenos">1082</span></a><span class="k">class</span> <span class="nc">BitString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="L-1083"><a href="#L-1083"><span class="linenos">1083</span></a> <span class="k">pass</span>
</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a>
</span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a>
</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</span></a><span class="k">class</span> <span class="nc">HexString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</span></a> <span class="k">pass</span>
</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a>
</span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a>
</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</span></a><span class="k">class</span> <span class="nc">ByteString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="L-1091"><a href="#L-1091"><span class="linenos">1091</span></a> <span class="k">pass</span>
</span><span id="L-1092"><a href="#L-1092"><span class="linenos">1092</span></a>
</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a>
</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a><span class="k">class</span> <span class="nc">RawString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a> <span class="k">pass</span>
</span><span id="L-1096"><a href="#L-1096"><span class="linenos">1096</span></a>
</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a>
</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</span></a><span class="k">class</span> <span class="nc">Column</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;join_mark&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</span></a>
</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a> <span class="nd">@property</span>
</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a> <span class="k">def</span> <span class="nf">table</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;table&quot;</span><span class="p">)</span>
</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a>
</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a> <span class="nd">@property</span>
</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</span></a> <span class="k">def</span> <span class="nf">db</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">)</span>
</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a>
</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a> <span class="nd">@property</span>
</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</span></a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">)</span>
</span><span id="L-1112"><a href="#L-1112"><span class="linenos">1112</span></a>
</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a> <span class="nd">@property</span>
</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-1115"><a href="#L-1115"><span class="linenos">1115</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a>
</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> <span class="nd">@property</span>
</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Identifier</span><span class="p">]:</span>
</span><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a column in order catalog, db, table, name.&quot;&quot;&quot;</span>
</span><span id="L-1120"><a href="#L-1120"><span class="linenos">1120</span></a> <span class="k">return</span> <span class="p">[</span>
</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">part</span><span class="p">])</span>
</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
</span><span id="L-1123"><a href="#L-1123"><span class="linenos">1123</span></a> <span class="k">if</span> <span class="bp">self</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="n">part</span><span class="p">)</span>
</span><span id="L-1124"><a href="#L-1124"><span class="linenos">1124</span></a> <span class="p">]</span>
</span><span id="L-1125"><a href="#L-1125"><span class="linenos">1125</span></a>
</span><span id="L-1126"><a href="#L-1126"><span class="linenos">1126</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Converts the column into a dot expression.&quot;&quot;&quot;</span>
</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parts</span>
</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="L-1130"><a href="#L-1130"><span class="linenos">1130</span></a>
</span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
</span><span id="L-1133"><a href="#L-1133"><span class="linenos">1133</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parent</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span>
</span><span id="L-1134"><a href="#L-1134"><span class="linenos">1134</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">parent</span>
</span><span id="L-1135"><a href="#L-1135"><span class="linenos">1135</span></a>
</span><span id="L-1136"><a href="#L-1136"><span class="linenos">1136</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
</span><span id="L-1137"><a href="#L-1137"><span class="linenos">1137</span></a>
</span><span id="L-1138"><a href="#L-1138"><span class="linenos">1138</span></a>
</span><span id="L-1139"><a href="#L-1139"><span class="linenos">1139</span></a><span class="k">class</span> <span class="nc">ColumnPosition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1140"><a href="#L-1140"><span class="linenos">1140</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1141"><a href="#L-1141"><span class="linenos">1141</span></a>
</span><span id="L-1142"><a href="#L-1142"><span class="linenos">1142</span></a>
</span><span id="L-1143"><a href="#L-1143"><span class="linenos">1143</span></a><span class="k">class</span> <span class="nc">ColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1144"><a href="#L-1144"><span class="linenos">1144</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1145"><a href="#L-1145"><span class="linenos">1145</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1146"><a href="#L-1146"><span class="linenos">1146</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1147"><a href="#L-1147"><span class="linenos">1147</span></a> <span class="s2">&quot;constraints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1148"><a href="#L-1148"><span class="linenos">1148</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1149"><a href="#L-1149"><span class="linenos">1149</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1150"><a href="#L-1150"><span class="linenos">1150</span></a> <span class="p">}</span>
</span><span id="L-1151"><a href="#L-1151"><span class="linenos">1151</span></a>
</span><span id="L-1152"><a href="#L-1152"><span class="linenos">1152</span></a> <span class="nd">@property</span>
</span><span id="L-1153"><a href="#L-1153"><span class="linenos">1153</span></a> <span class="k">def</span> <span class="nf">constraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">ColumnConstraint</span><span class="p">]:</span>
</span><span id="L-1154"><a href="#L-1154"><span class="linenos">1154</span></a> <span class="k">return</span> <span class="bp">self</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;constraints&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
</span><span id="L-1155"><a href="#L-1155"><span class="linenos">1155</span></a>
</span><span id="L-1156"><a href="#L-1156"><span class="linenos">1156</span></a>
</span><span id="L-1157"><a href="#L-1157"><span class="linenos">1157</span></a><span class="k">class</span> <span class="nc">AlterColumn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1158"><a href="#L-1158"><span class="linenos">1158</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1159"><a href="#L-1159"><span class="linenos">1159</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1160"><a href="#L-1160"><span class="linenos">1160</span></a> <span class="s2">&quot;dtype&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1161"><a href="#L-1161"><span class="linenos">1161</span></a> <span class="s2">&quot;collate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1162"><a href="#L-1162"><span class="linenos">1162</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1163"><a href="#L-1163"><span class="linenos">1163</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1164"><a href="#L-1164"><span class="linenos">1164</span></a> <span class="s2">&quot;drop&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1165"><a href="#L-1165"><span class="linenos">1165</span></a> <span class="p">}</span>
</span><span id="L-1166"><a href="#L-1166"><span class="linenos">1166</span></a>
</span><span id="L-1167"><a href="#L-1167"><span class="linenos">1167</span></a>
</span><span id="L-1168"><a href="#L-1168"><span class="linenos">1168</span></a><span class="k">class</span> <span class="nc">RenameTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1169"><a href="#L-1169"><span class="linenos">1169</span></a> <span class="k">pass</span>
</span><span id="L-1170"><a href="#L-1170"><span class="linenos">1170</span></a>
</span><span id="L-1171"><a href="#L-1171"><span class="linenos">1171</span></a>
</span><span id="L-1172"><a href="#L-1172"><span class="linenos">1172</span></a><span class="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1173"><a href="#L-1173"><span class="linenos">1173</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1174"><a href="#L-1174"><span class="linenos">1174</span></a>
</span><span id="L-1175"><a href="#L-1175"><span class="linenos">1175</span></a>
</span><span id="L-1176"><a href="#L-1176"><span class="linenos">1176</span></a><span class="k">class</span> <span class="nc">Comment</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1177"><a href="#L-1177"><span class="linenos">1177</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1178"><a href="#L-1178"><span class="linenos">1178</span></a>
</span><span id="L-1179"><a href="#L-1179"><span class="linenos">1179</span></a>
</span><span id="L-1180"><a href="#L-1180"><span class="linenos">1180</span></a><span class="c1"># https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl</span>
</span><span id="L-1181"><a href="#L-1181"><span class="linenos">1181</span></a><span class="k">class</span> <span class="nc">MergeTreeTTLAction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1182"><a href="#L-1182"><span class="linenos">1182</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1183"><a href="#L-1183"><span class="linenos">1183</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1184"><a href="#L-1184"><span class="linenos">1184</span></a> <span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1185"><a href="#L-1185"><span class="linenos">1185</span></a> <span class="s2">&quot;recompress&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1186"><a href="#L-1186"><span class="linenos">1186</span></a> <span class="s2">&quot;to_disk&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1187"><a href="#L-1187"><span class="linenos">1187</span></a> <span class="s2">&quot;to_volume&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1188"><a href="#L-1188"><span class="linenos">1188</span></a> <span class="p">}</span>
</span><span id="L-1189"><a href="#L-1189"><span class="linenos">1189</span></a>
</span><span id="L-1190"><a href="#L-1190"><span class="linenos">1190</span></a>
</span><span id="L-1191"><a href="#L-1191"><span class="linenos">1191</span></a><span class="c1"># https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#mergetree-table-ttl</span>
</span><span id="L-1192"><a href="#L-1192"><span class="linenos">1192</span></a><span class="k">class</span> <span class="nc">MergeTreeTTL</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1193"><a href="#L-1193"><span class="linenos">1193</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1194"><a href="#L-1194"><span class="linenos">1194</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1195"><a href="#L-1195"><span class="linenos">1195</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1196"><a href="#L-1196"><span class="linenos">1196</span></a> <span class="s2">&quot;group&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1197"><a href="#L-1197"><span class="linenos">1197</span></a> <span class="s2">&quot;aggregates&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1198"><a href="#L-1198"><span class="linenos">1198</span></a> <span class="p">}</span>
</span><span id="L-1199"><a href="#L-1199"><span class="linenos">1199</span></a>
</span><span id="L-1200"><a href="#L-1200"><span class="linenos">1200</span></a>
</span><span id="L-1201"><a href="#L-1201"><span class="linenos">1201</span></a><span class="k">class</span> <span class="nc">ColumnConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1202"><a href="#L-1202"><span class="linenos">1202</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1203"><a href="#L-1203"><span class="linenos">1203</span></a>
</span><span id="L-1204"><a href="#L-1204"><span class="linenos">1204</span></a> <span class="nd">@property</span>
</span><span id="L-1205"><a href="#L-1205"><span class="linenos">1205</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ColumnConstraintKind</span><span class="p">:</span>
</span><span id="L-1206"><a href="#L-1206"><span class="linenos">1206</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;kind&quot;</span><span class="p">]</span>
</span><span id="L-1207"><a href="#L-1207"><span class="linenos">1207</span></a>
</span><span id="L-1208"><a href="#L-1208"><span class="linenos">1208</span></a>
</span><span id="L-1209"><a href="#L-1209"><span class="linenos">1209</span></a><span class="k">class</span> <span class="nc">ColumnConstraintKind</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1210"><a href="#L-1210"><span class="linenos">1210</span></a> <span class="k">pass</span>
</span><span id="L-1211"><a href="#L-1211"><span class="linenos">1211</span></a>
</span><span id="L-1212"><a href="#L-1212"><span class="linenos">1212</span></a>
</span><span id="L-1213"><a href="#L-1213"><span class="linenos">1213</span></a><span class="k">class</span> <span class="nc">AutoIncrementColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1214"><a href="#L-1214"><span class="linenos">1214</span></a> <span class="k">pass</span>
</span><span id="L-1215"><a href="#L-1215"><span class="linenos">1215</span></a>
</span><span id="L-1216"><a href="#L-1216"><span class="linenos">1216</span></a>
</span><span id="L-1217"><a href="#L-1217"><span class="linenos">1217</span></a><span class="k">class</span> <span class="nc">CaseSpecificColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1218"><a href="#L-1218"><span class="linenos">1218</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;not_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1219"><a href="#L-1219"><span class="linenos">1219</span></a>
</span><span id="L-1220"><a href="#L-1220"><span class="linenos">1220</span></a>
</span><span id="L-1221"><a href="#L-1221"><span class="linenos">1221</span></a><span class="k">class</span> <span class="nc">CharacterSetColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1222"><a href="#L-1222"><span class="linenos">1222</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1223"><a href="#L-1223"><span class="linenos">1223</span></a>
</span><span id="L-1224"><a href="#L-1224"><span class="linenos">1224</span></a>
</span><span id="L-1225"><a href="#L-1225"><span class="linenos">1225</span></a><span class="k">class</span> <span class="nc">CheckColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1226"><a href="#L-1226"><span class="linenos">1226</span></a> <span class="k">pass</span>
</span><span id="L-1227"><a href="#L-1227"><span class="linenos">1227</span></a>
</span><span id="L-1228"><a href="#L-1228"><span class="linenos">1228</span></a>
</span><span id="L-1229"><a href="#L-1229"><span class="linenos">1229</span></a><span class="k">class</span> <span class="nc">CollateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1230"><a href="#L-1230"><span class="linenos">1230</span></a> <span class="k">pass</span>
</span><span id="L-1231"><a href="#L-1231"><span class="linenos">1231</span></a>
</span><span id="L-1232"><a href="#L-1232"><span class="linenos">1232</span></a>
</span><span id="L-1233"><a href="#L-1233"><span class="linenos">1233</span></a><span class="k">class</span> <span class="nc">CommentColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1234"><a href="#L-1234"><span class="linenos">1234</span></a> <span class="k">pass</span>
</span><span id="L-1235"><a href="#L-1235"><span class="linenos">1235</span></a>
</span><span id="L-1236"><a href="#L-1236"><span class="linenos">1236</span></a>
</span><span id="L-1237"><a href="#L-1237"><span class="linenos">1237</span></a><span class="k">class</span> <span class="nc">CompressColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1238"><a href="#L-1238"><span class="linenos">1238</span></a> <span class="k">pass</span>
</span><span id="L-1239"><a href="#L-1239"><span class="linenos">1239</span></a>
</span><span id="L-1240"><a href="#L-1240"><span class="linenos">1240</span></a>
</span><span id="L-1241"><a href="#L-1241"><span class="linenos">1241</span></a><span class="k">class</span> <span class="nc">DateFormatColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1242"><a href="#L-1242"><span class="linenos">1242</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1243"><a href="#L-1243"><span class="linenos">1243</span></a>
</span><span id="L-1244"><a href="#L-1244"><span class="linenos">1244</span></a>
</span><span id="L-1245"><a href="#L-1245"><span class="linenos">1245</span></a><span class="k">class</span> <span class="nc">DefaultColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1246"><a href="#L-1246"><span class="linenos">1246</span></a> <span class="k">pass</span>
</span><span id="L-1247"><a href="#L-1247"><span class="linenos">1247</span></a>
</span><span id="L-1248"><a href="#L-1248"><span class="linenos">1248</span></a>
</span><span id="L-1249"><a href="#L-1249"><span class="linenos">1249</span></a><span class="k">class</span> <span class="nc">EncodeColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1250"><a href="#L-1250"><span class="linenos">1250</span></a> <span class="k">pass</span>
</span><span id="L-1251"><a href="#L-1251"><span class="linenos">1251</span></a>
</span><span id="L-1252"><a href="#L-1252"><span class="linenos">1252</span></a>
</span><span id="L-1253"><a href="#L-1253"><span class="linenos">1253</span></a><span class="k">class</span> <span class="nc">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1254"><a href="#L-1254"><span class="linenos">1254</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</span>
</span><span id="L-1255"><a href="#L-1255"><span class="linenos">1255</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1256"><a href="#L-1256"><span class="linenos">1256</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1257"><a href="#L-1257"><span class="linenos">1257</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1258"><a href="#L-1258"><span class="linenos">1258</span></a> <span class="s2">&quot;on_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1259"><a href="#L-1259"><span class="linenos">1259</span></a> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1260"><a href="#L-1260"><span class="linenos">1260</span></a> <span class="s2">&quot;increment&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1261"><a href="#L-1261"><span class="linenos">1261</span></a> <span class="s2">&quot;minvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1262"><a href="#L-1262"><span class="linenos">1262</span></a> <span class="s2">&quot;maxvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1263"><a href="#L-1263"><span class="linenos">1263</span></a> <span class="s2">&quot;cycle&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1264"><a href="#L-1264"><span class="linenos">1264</span></a> <span class="p">}</span>
</span><span id="L-1265"><a href="#L-1265"><span class="linenos">1265</span></a>
</span><span id="L-1266"><a href="#L-1266"><span class="linenos">1266</span></a>
</span><span id="L-1267"><a href="#L-1267"><span class="linenos">1267</span></a><span class="k">class</span> <span class="nc">InlineLengthColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1268"><a href="#L-1268"><span class="linenos">1268</span></a> <span class="k">pass</span>
</span><span id="L-1269"><a href="#L-1269"><span class="linenos">1269</span></a>
</span><span id="L-1270"><a href="#L-1270"><span class="linenos">1270</span></a>
</span><span id="L-1271"><a href="#L-1271"><span class="linenos">1271</span></a><span class="k">class</span> <span class="nc">NotNullColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1272"><a href="#L-1272"><span class="linenos">1272</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;allow_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1273"><a href="#L-1273"><span class="linenos">1273</span></a>
</span><span id="L-1274"><a href="#L-1274"><span class="linenos">1274</span></a>
</span><span id="L-1275"><a href="#L-1275"><span class="linenos">1275</span></a><span class="c1"># https://dev.mysql.com/doc/refman/5.7/en/timestamp-initialization.html</span>
</span><span id="L-1276"><a href="#L-1276"><span class="linenos">1276</span></a><span class="k">class</span> <span class="nc">OnUpdateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1277"><a href="#L-1277"><span class="linenos">1277</span></a> <span class="k">pass</span>
</span><span id="L-1278"><a href="#L-1278"><span class="linenos">1278</span></a>
</span><span id="L-1279"><a href="#L-1279"><span class="linenos">1279</span></a>
</span><span id="L-1280"><a href="#L-1280"><span class="linenos">1280</span></a><span class="k">class</span> <span class="nc">PrimaryKeyColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1281"><a href="#L-1281"><span class="linenos">1281</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1282"><a href="#L-1282"><span class="linenos">1282</span></a>
</span><span id="L-1283"><a href="#L-1283"><span class="linenos">1283</span></a>
</span><span id="L-1284"><a href="#L-1284"><span class="linenos">1284</span></a><span class="k">class</span> <span class="nc">TitleColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1285"><a href="#L-1285"><span class="linenos">1285</span></a> <span class="k">pass</span>
</span><span id="L-1286"><a href="#L-1286"><span class="linenos">1286</span></a>
</span><span id="L-1287"><a href="#L-1287"><span class="linenos">1287</span></a>
</span><span id="L-1288"><a href="#L-1288"><span class="linenos">1288</span></a><span class="k">class</span> <span class="nc">UniqueColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1289"><a href="#L-1289"><span class="linenos">1289</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-1290"><a href="#L-1290"><span class="linenos">1290</span></a>
</span><span id="L-1291"><a href="#L-1291"><span class="linenos">1291</span></a>
</span><span id="L-1292"><a href="#L-1292"><span class="linenos">1292</span></a><span class="k">class</span> <span class="nc">UppercaseColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1293"><a href="#L-1293"><span class="linenos">1293</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-1294"><a href="#L-1294"><span class="linenos">1294</span></a>
</span><span id="L-1295"><a href="#L-1295"><span class="linenos">1295</span></a>
</span><span id="L-1296"><a href="#L-1296"><span class="linenos">1296</span></a><span class="k">class</span> <span class="nc">PathColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="L-1297"><a href="#L-1297"><span class="linenos">1297</span></a> <span class="k">pass</span>
</span><span id="L-1298"><a href="#L-1298"><span class="linenos">1298</span></a>
</span><span id="L-1299"><a href="#L-1299"><span class="linenos">1299</span></a>
</span><span id="L-1300"><a href="#L-1300"><span class="linenos">1300</span></a><span class="k">class</span> <span class="nc">Constraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1301"><a href="#L-1301"><span class="linenos">1301</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1302"><a href="#L-1302"><span class="linenos">1302</span></a>
</span><span id="L-1303"><a href="#L-1303"><span class="linenos">1303</span></a>
</span><span id="L-1304"><a href="#L-1304"><span class="linenos">1304</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1305"><a href="#L-1305"><span class="linenos">1305</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1306"><a href="#L-1306"><span class="linenos">1306</span></a>
</span><span id="L-1307"><a href="#L-1307"><span class="linenos">1307</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
</span><span id="L-1308"><a href="#L-1308"><span class="linenos">1308</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-1309"><a href="#L-1309"><span class="linenos">1309</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-1310"><a href="#L-1310"><span class="linenos">1310</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-1311"><a href="#L-1311"><span class="linenos">1311</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1312"><a href="#L-1312"><span class="linenos">1312</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-1313"><a href="#L-1313"><span class="linenos">1313</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
</span><span id="L-1314"><a href="#L-1314"><span class="linenos">1314</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-1315"><a href="#L-1315"><span class="linenos">1315</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
</span><span id="L-1316"><a href="#L-1316"><span class="linenos">1316</span></a>
</span><span id="L-1317"><a href="#L-1317"><span class="linenos">1317</span></a><span class="sd"> Example:</span>
</span><span id="L-1318"><a href="#L-1318"><span class="linenos">1318</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
</span><span id="L-1319"><a href="#L-1319"><span class="linenos">1319</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
</span><span id="L-1320"><a href="#L-1320"><span class="linenos">1320</span></a>
</span><span id="L-1321"><a href="#L-1321"><span class="linenos">1321</span></a><span class="sd"> Args:</span>
</span><span id="L-1322"><a href="#L-1322"><span class="linenos">1322</span></a><span class="sd"> table: the table from which to delete.</span>
</span><span id="L-1323"><a href="#L-1323"><span class="linenos">1323</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-1324"><a href="#L-1324"><span class="linenos">1324</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-1325"><a href="#L-1325"><span class="linenos">1325</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-1326"><a href="#L-1326"><span class="linenos">1326</span></a>
</span><span id="L-1327"><a href="#L-1327"><span class="linenos">1327</span></a><span class="sd"> Returns:</span>
</span><span id="L-1328"><a href="#L-1328"><span class="linenos">1328</span></a><span class="sd"> Delete: the modified expression.</span>
</span><span id="L-1329"><a href="#L-1329"><span class="linenos">1329</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-1330"><a href="#L-1330"><span class="linenos">1330</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="L-1331"><a href="#L-1331"><span class="linenos">1331</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
</span><span id="L-1332"><a href="#L-1332"><span class="linenos">1332</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-1333"><a href="#L-1333"><span class="linenos">1333</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
</span><span id="L-1334"><a href="#L-1334"><span class="linenos">1334</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-1335"><a href="#L-1335"><span class="linenos">1335</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
</span><span id="L-1336"><a href="#L-1336"><span class="linenos">1336</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-1337"><a href="#L-1337"><span class="linenos">1337</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-1338"><a href="#L-1338"><span class="linenos">1338</span></a> <span class="p">)</span>
</span><span id="L-1339"><a href="#L-1339"><span class="linenos">1339</span></a>
</span><span id="L-1340"><a href="#L-1340"><span class="linenos">1340</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
</span><span id="L-1341"><a href="#L-1341"><span class="linenos">1341</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-1342"><a href="#L-1342"><span class="linenos">1342</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-1343"><a href="#L-1343"><span class="linenos">1343</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1344"><a href="#L-1344"><span class="linenos">1344</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-1345"><a href="#L-1345"><span class="linenos">1345</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1346"><a href="#L-1346"><span class="linenos">1346</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-1347"><a href="#L-1347"><span class="linenos">1347</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
</span><span id="L-1348"><a href="#L-1348"><span class="linenos">1348</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-1349"><a href="#L-1349"><span class="linenos">1349</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
</span><span id="L-1350"><a href="#L-1350"><span class="linenos">1350</span></a>
</span><span id="L-1351"><a href="#L-1351"><span class="linenos">1351</span></a><span class="sd"> Example:</span>
</span><span id="L-1352"><a href="#L-1352"><span class="linenos">1352</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
</span><span id="L-1353"><a href="#L-1353"><span class="linenos">1353</span></a><span class="sd"> &quot;DELETE FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
</span><span id="L-1354"><a href="#L-1354"><span class="linenos">1354</span></a>
</span><span id="L-1355"><a href="#L-1355"><span class="linenos">1355</span></a><span class="sd"> Args:</span>
</span><span id="L-1356"><a href="#L-1356"><span class="linenos">1356</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-1357"><a href="#L-1357"><span class="linenos">1357</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-1358"><a href="#L-1358"><span class="linenos">1358</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
</span><span id="L-1359"><a href="#L-1359"><span class="linenos">1359</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
</span><span id="L-1360"><a href="#L-1360"><span class="linenos">1360</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="L-1361"><a href="#L-1361"><span class="linenos">1361</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="L-1362"><a href="#L-1362"><span class="linenos">1362</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-1363"><a href="#L-1363"><span class="linenos">1363</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-1364"><a href="#L-1364"><span class="linenos">1364</span></a>
</span><span id="L-1365"><a href="#L-1365"><span class="linenos">1365</span></a><span class="sd"> Returns:</span>
</span><span id="L-1366"><a href="#L-1366"><span class="linenos">1366</span></a><span class="sd"> Delete: the modified expression.</span>
</span><span id="L-1367"><a href="#L-1367"><span class="linenos">1367</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-1368"><a href="#L-1368"><span class="linenos">1368</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="L-1369"><a href="#L-1369"><span class="linenos">1369</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-1370"><a href="#L-1370"><span class="linenos">1370</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-1371"><a href="#L-1371"><span class="linenos">1371</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
</span><span id="L-1372"><a href="#L-1372"><span class="linenos">1372</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-1373"><a href="#L-1373"><span class="linenos">1373</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
</span><span id="L-1374"><a href="#L-1374"><span class="linenos">1374</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-1375"><a href="#L-1375"><span class="linenos">1375</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-1376"><a href="#L-1376"><span class="linenos">1376</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-1377"><a href="#L-1377"><span class="linenos">1377</span></a> <span class="p">)</span>
</span><span id="L-1378"><a href="#L-1378"><span class="linenos">1378</span></a>
</span><span id="L-1379"><a href="#L-1379"><span class="linenos">1379</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
</span><span id="L-1380"><a href="#L-1380"><span class="linenos">1380</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-1381"><a href="#L-1381"><span class="linenos">1381</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-1382"><a href="#L-1382"><span class="linenos">1382</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-1383"><a href="#L-1383"><span class="linenos">1383</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1384"><a href="#L-1384"><span class="linenos">1384</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-1385"><a href="#L-1385"><span class="linenos">1385</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
</span><span id="L-1386"><a href="#L-1386"><span class="linenos">1386</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-1387"><a href="#L-1387"><span class="linenos">1387</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
</span><span id="L-1388"><a href="#L-1388"><span class="linenos">1388</span></a>
</span><span id="L-1389"><a href="#L-1389"><span class="linenos">1389</span></a><span class="sd"> Example:</span>
</span><span id="L-1390"><a href="#L-1390"><span class="linenos">1390</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
</span><span id="L-1391"><a href="#L-1391"><span class="linenos">1391</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
</span><span id="L-1392"><a href="#L-1392"><span class="linenos">1392</span></a>
</span><span id="L-1393"><a href="#L-1393"><span class="linenos">1393</span></a><span class="sd"> Args:</span>
</span><span id="L-1394"><a href="#L-1394"><span class="linenos">1394</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
</span><span id="L-1395"><a href="#L-1395"><span class="linenos">1395</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-1396"><a href="#L-1396"><span class="linenos">1396</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="L-1397"><a href="#L-1397"><span class="linenos">1397</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-1398"><a href="#L-1398"><span class="linenos">1398</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-1399"><a href="#L-1399"><span class="linenos">1399</span></a>
</span><span id="L-1400"><a href="#L-1400"><span class="linenos">1400</span></a><span class="sd"> Returns:</span>
</span><span id="L-1401"><a href="#L-1401"><span class="linenos">1401</span></a><span class="sd"> Delete: the modified expression.</span>
</span><span id="L-1402"><a href="#L-1402"><span class="linenos">1402</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-1403"><a href="#L-1403"><span class="linenos">1403</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="L-1404"><a href="#L-1404"><span class="linenos">1404</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="L-1405"><a href="#L-1405"><span class="linenos">1405</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-1406"><a href="#L-1406"><span class="linenos">1406</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;returning&quot;</span><span class="p">,</span>
</span><span id="L-1407"><a href="#L-1407"><span class="linenos">1407</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;RETURNING&quot;</span><span class="p">,</span>
</span><span id="L-1408"><a href="#L-1408"><span class="linenos">1408</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-1409"><a href="#L-1409"><span class="linenos">1409</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-1410"><a href="#L-1410"><span class="linenos">1410</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
</span><span id="L-1411"><a href="#L-1411"><span class="linenos">1411</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-1412"><a href="#L-1412"><span class="linenos">1412</span></a> <span class="p">)</span>
</span><span id="L-1413"><a href="#L-1413"><span class="linenos">1413</span></a>
</span><span id="L-1414"><a href="#L-1414"><span class="linenos">1414</span></a>
</span><span id="L-1415"><a href="#L-1415"><span class="linenos">1415</span></a><span class="k">class</span> <span class="nc">Drop</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1416"><a href="#L-1416"><span class="linenos">1416</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1417"><a href="#L-1417"><span class="linenos">1417</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1418"><a href="#L-1418"><span class="linenos">1418</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1419"><a href="#L-1419"><span class="linenos">1419</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1420"><a href="#L-1420"><span class="linenos">1420</span></a> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1421"><a href="#L-1421"><span class="linenos">1421</span></a> <span class="s2">&quot;materialized&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1422"><a href="#L-1422"><span class="linenos">1422</span></a> <span class="s2">&quot;cascade&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1423"><a href="#L-1423"><span class="linenos">1423</span></a> <span class="s2">&quot;constraints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1424"><a href="#L-1424"><span class="linenos">1424</span></a> <span class="s2">&quot;purge&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1425"><a href="#L-1425"><span class="linenos">1425</span></a> <span class="p">}</span>
</span><span id="L-1426"><a href="#L-1426"><span class="linenos">1426</span></a>
</span><span id="L-1427"><a href="#L-1427"><span class="linenos">1427</span></a>
</span><span id="L-1428"><a href="#L-1428"><span class="linenos">1428</span></a><span class="k">class</span> <span class="nc">Filter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1429"><a href="#L-1429"><span class="linenos">1429</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1430"><a href="#L-1430"><span class="linenos">1430</span></a>
</span><span id="L-1431"><a href="#L-1431"><span class="linenos">1431</span></a>
</span><span id="L-1432"><a href="#L-1432"><span class="linenos">1432</span></a><span class="k">class</span> <span class="nc">Check</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1433"><a href="#L-1433"><span class="linenos">1433</span></a> <span class="k">pass</span>
</span><span id="L-1434"><a href="#L-1434"><span class="linenos">1434</span></a>
</span><span id="L-1435"><a href="#L-1435"><span class="linenos">1435</span></a>
</span><span id="L-1436"><a href="#L-1436"><span class="linenos">1436</span></a><span class="k">class</span> <span class="nc">Directory</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1437"><a href="#L-1437"><span class="linenos">1437</span></a> <span class="c1"># https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html</span>
</span><span id="L-1438"><a href="#L-1438"><span class="linenos">1438</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;row_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1439"><a href="#L-1439"><span class="linenos">1439</span></a>
</span><span id="L-1440"><a href="#L-1440"><span class="linenos">1440</span></a>
</span><span id="L-1441"><a href="#L-1441"><span class="linenos">1441</span></a><span class="k">class</span> <span class="nc">ForeignKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1442"><a href="#L-1442"><span class="linenos">1442</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1443"><a href="#L-1443"><span class="linenos">1443</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1444"><a href="#L-1444"><span class="linenos">1444</span></a> <span class="s2">&quot;reference&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1445"><a href="#L-1445"><span class="linenos">1445</span></a> <span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1446"><a href="#L-1446"><span class="linenos">1446</span></a> <span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1447"><a href="#L-1447"><span class="linenos">1447</span></a> <span class="p">}</span>
</span><span id="L-1448"><a href="#L-1448"><span class="linenos">1448</span></a>
</span><span id="L-1449"><a href="#L-1449"><span class="linenos">1449</span></a>
</span><span id="L-1450"><a href="#L-1450"><span class="linenos">1450</span></a><span class="k">class</span> <span class="nc">PrimaryKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1451"><a href="#L-1451"><span class="linenos">1451</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1452"><a href="#L-1452"><span class="linenos">1452</span></a>
</span><span id="L-1453"><a href="#L-1453"><span class="linenos">1453</span></a>
</span><span id="L-1454"><a href="#L-1454"><span class="linenos">1454</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1455"><a href="#L-1455"><span class="linenos">1455</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1456"><a href="#L-1456"><span class="linenos">1456</span></a>
</span><span id="L-1457"><a href="#L-1457"><span class="linenos">1457</span></a>
</span><span id="L-1458"><a href="#L-1458"><span class="linenos">1458</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/sql-selectinto.html</span>
</span><span id="L-1459"><a href="#L-1459"><span class="linenos">1459</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_SELECT_INTO.html#r_SELECT_INTO-examples</span>
</span><span id="L-1460"><a href="#L-1460"><span class="linenos">1460</span></a><span class="k">class</span> <span class="nc">Into</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1461"><a href="#L-1461"><span class="linenos">1461</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;unlogged&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1462"><a href="#L-1462"><span class="linenos">1462</span></a>
</span><span id="L-1463"><a href="#L-1463"><span class="linenos">1463</span></a>
</span><span id="L-1464"><a href="#L-1464"><span class="linenos">1464</span></a><span class="k">class</span> <span class="nc">From</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1465"><a href="#L-1465"><span class="linenos">1465</span></a> <span class="nd">@property</span>
</span><span id="L-1466"><a href="#L-1466"><span class="linenos">1466</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-1467"><a href="#L-1467"><span class="linenos">1467</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-1468"><a href="#L-1468"><span class="linenos">1468</span></a>
</span><span id="L-1469"><a href="#L-1469"><span class="linenos">1469</span></a> <span class="nd">@property</span>
</span><span id="L-1470"><a href="#L-1470"><span class="linenos">1470</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-1471"><a href="#L-1471"><span class="linenos">1471</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span>
</span><span id="L-1472"><a href="#L-1472"><span class="linenos">1472</span></a>
</span><span id="L-1473"><a href="#L-1473"><span class="linenos">1473</span></a>
</span><span id="L-1474"><a href="#L-1474"><span class="linenos">1474</span></a><span class="k">class</span> <span class="nc">Having</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1475"><a href="#L-1475"><span class="linenos">1475</span></a> <span class="k">pass</span>
</span><span id="L-1476"><a href="#L-1476"><span class="linenos">1476</span></a>
</span><span id="L-1477"><a href="#L-1477"><span class="linenos">1477</span></a>
</span><span id="L-1478"><a href="#L-1478"><span class="linenos">1478</span></a><span class="k">class</span> <span class="nc">Hint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1479"><a href="#L-1479"><span class="linenos">1479</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1480"><a href="#L-1480"><span class="linenos">1480</span></a>
</span><span id="L-1481"><a href="#L-1481"><span class="linenos">1481</span></a>
</span><span id="L-1482"><a href="#L-1482"><span class="linenos">1482</span></a><span class="k">class</span> <span class="nc">JoinHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1483"><a href="#L-1483"><span class="linenos">1483</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1484"><a href="#L-1484"><span class="linenos">1484</span></a>
</span><span id="L-1485"><a href="#L-1485"><span class="linenos">1485</span></a>
</span><span id="L-1486"><a href="#L-1486"><span class="linenos">1486</span></a><span class="k">class</span> <span class="nc">Identifier</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1487"><a href="#L-1487"><span class="linenos">1487</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1488"><a href="#L-1488"><span class="linenos">1488</span></a>
</span><span id="L-1489"><a href="#L-1489"><span class="linenos">1489</span></a> <span class="nd">@property</span>
</span><span id="L-1490"><a href="#L-1490"><span class="linenos">1490</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-1491"><a href="#L-1491"><span class="linenos">1491</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</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;quoted&quot;</span><span class="p">))</span>
</span><span id="L-1492"><a href="#L-1492"><span class="linenos">1492</span></a>
</span><span id="L-1493"><a href="#L-1493"><span class="linenos">1493</span></a> <span class="nd">@property</span>
</span><span id="L-1494"><a href="#L-1494"><span class="linenos">1494</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
</span><span id="L-1495"><a href="#L-1495"><span class="linenos">1495</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span><span class="n">char</span><span class="o">.</span><span class="n">isupper</span><span class="p">()</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">):</span>
</span><span id="L-1496"><a href="#L-1496"><span class="linenos">1496</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span><span class="p">)</span>
</span><span id="L-1497"><a href="#L-1497"><span class="linenos">1497</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
</span><span id="L-1498"><a href="#L-1498"><span class="linenos">1498</span></a>
</span><span id="L-1499"><a href="#L-1499"><span class="linenos">1499</span></a> <span class="nd">@property</span>
</span><span id="L-1500"><a href="#L-1500"><span class="linenos">1500</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-1501"><a href="#L-1501"><span class="linenos">1501</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-1502"><a href="#L-1502"><span class="linenos">1502</span></a>
</span><span id="L-1503"><a href="#L-1503"><span class="linenos">1503</span></a>
</span><span id="L-1504"><a href="#L-1504"><span class="linenos">1504</span></a><span class="k">class</span> <span class="nc">Index</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1505"><a href="#L-1505"><span class="linenos">1505</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1506"><a href="#L-1506"><span class="linenos">1506</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1507"><a href="#L-1507"><span class="linenos">1507</span></a> <span class="s2">&quot;table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1508"><a href="#L-1508"><span class="linenos">1508</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1509"><a href="#L-1509"><span class="linenos">1509</span></a> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1510"><a href="#L-1510"><span class="linenos">1510</span></a> <span class="s2">&quot;unique&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1511"><a href="#L-1511"><span class="linenos">1511</span></a> <span class="s2">&quot;primary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1512"><a href="#L-1512"><span class="linenos">1512</span></a> <span class="s2">&quot;amp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span>
</span><span id="L-1513"><a href="#L-1513"><span class="linenos">1513</span></a> <span class="p">}</span>
</span><span id="L-1514"><a href="#L-1514"><span class="linenos">1514</span></a>
</span><span id="L-1515"><a href="#L-1515"><span class="linenos">1515</span></a>
</span><span id="L-1516"><a href="#L-1516"><span class="linenos">1516</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1517"><a href="#L-1517"><span class="linenos">1517</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1518"><a href="#L-1518"><span class="linenos">1518</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1519"><a href="#L-1519"><span class="linenos">1519</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1520"><a href="#L-1520"><span class="linenos">1520</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1521"><a href="#L-1521"><span class="linenos">1521</span></a> <span class="s2">&quot;conflict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1522"><a href="#L-1522"><span class="linenos">1522</span></a> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1523"><a href="#L-1523"><span class="linenos">1523</span></a> <span class="s2">&quot;overwrite&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1524"><a href="#L-1524"><span class="linenos">1524</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1525"><a href="#L-1525"><span class="linenos">1525</span></a> <span class="s2">&quot;partition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1526"><a href="#L-1526"><span class="linenos">1526</span></a> <span class="s2">&quot;alternative&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1527"><a href="#L-1527"><span class="linenos">1527</span></a> <span class="p">}</span>
</span><span id="L-1528"><a href="#L-1528"><span class="linenos">1528</span></a>
</span><span id="L-1529"><a href="#L-1529"><span class="linenos">1529</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
</span><span id="L-1530"><a href="#L-1530"><span class="linenos">1530</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-1531"><a href="#L-1531"><span class="linenos">1531</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-1532"><a href="#L-1532"><span class="linenos">1532</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-1533"><a href="#L-1533"><span class="linenos">1533</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-1534"><a href="#L-1534"><span class="linenos">1534</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1535"><a href="#L-1535"><span class="linenos">1535</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-1536"><a href="#L-1536"><span class="linenos">1536</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1537"><a href="#L-1537"><span class="linenos">1537</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-1538"><a href="#L-1538"><span class="linenos">1538</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
</span><span id="L-1539"><a href="#L-1539"><span class="linenos">1539</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-1540"><a href="#L-1540"><span class="linenos">1540</span></a><span class="sd"> Append to or set the common table expressions.</span>
</span><span id="L-1541"><a href="#L-1541"><span class="linenos">1541</span></a>
</span><span id="L-1542"><a href="#L-1542"><span class="linenos">1542</span></a><span class="sd"> Example:</span>
</span><span id="L-1543"><a href="#L-1543"><span class="linenos">1543</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
</span><span id="L-1544"><a href="#L-1544"><span class="linenos">1544</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
</span><span id="L-1545"><a href="#L-1545"><span class="linenos">1545</span></a>
</span><span id="L-1546"><a href="#L-1546"><span class="linenos">1546</span></a><span class="sd"> Args:</span>
</span><span id="L-1547"><a href="#L-1547"><span class="linenos">1547</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
</span><span id="L-1548"><a href="#L-1548"><span class="linenos">1548</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
</span><span id="L-1549"><a href="#L-1549"><span class="linenos">1549</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
</span><span id="L-1550"><a href="#L-1550"><span class="linenos">1550</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-1551"><a href="#L-1551"><span class="linenos">1551</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
</span><span id="L-1552"><a href="#L-1552"><span class="linenos">1552</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="L-1553"><a href="#L-1553"><span class="linenos">1553</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="L-1554"><a href="#L-1554"><span class="linenos">1554</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-1555"><a href="#L-1555"><span class="linenos">1555</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-1556"><a href="#L-1556"><span class="linenos">1556</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-1557"><a href="#L-1557"><span class="linenos">1557</span></a>
</span><span id="L-1558"><a href="#L-1558"><span class="linenos">1558</span></a><span class="sd"> Returns:</span>
</span><span id="L-1559"><a href="#L-1559"><span class="linenos">1559</span></a><span class="sd"> The modified expression.</span>
</span><span id="L-1560"><a href="#L-1560"><span class="linenos">1560</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-1561"><a href="#L-1561"><span class="linenos">1561</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
</span><span id="L-1562"><a href="#L-1562"><span class="linenos">1562</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-1563"><a href="#L-1563"><span class="linenos">1563</span></a> <span class="p">)</span>
</span><span id="L-1564"><a href="#L-1564"><span class="linenos">1564</span></a>
</span><span id="L-1565"><a href="#L-1565"><span class="linenos">1565</span></a>
</span><span id="L-1566"><a href="#L-1566"><span class="linenos">1566</span></a><span class="k">class</span> <span class="nc">OnConflict</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1567"><a href="#L-1567"><span class="linenos">1567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1568"><a href="#L-1568"><span class="linenos">1568</span></a> <span class="s2">&quot;duplicate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1569"><a href="#L-1569"><span class="linenos">1569</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1570"><a href="#L-1570"><span class="linenos">1570</span></a> <span class="s2">&quot;nothing&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1571"><a href="#L-1571"><span class="linenos">1571</span></a> <span class="s2">&quot;key&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1572"><a href="#L-1572"><span class="linenos">1572</span></a> <span class="s2">&quot;constraint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1573"><a href="#L-1573"><span class="linenos">1573</span></a> <span class="p">}</span>
</span><span id="L-1574"><a href="#L-1574"><span class="linenos">1574</span></a>
</span><span id="L-1575"><a href="#L-1575"><span class="linenos">1575</span></a>
</span><span id="L-1576"><a href="#L-1576"><span class="linenos">1576</span></a><span class="k">class</span> <span class="nc">Returning</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1577"><a href="#L-1577"><span class="linenos">1577</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1578"><a href="#L-1578"><span class="linenos">1578</span></a>
</span><span id="L-1579"><a href="#L-1579"><span class="linenos">1579</span></a>
</span><span id="L-1580"><a href="#L-1580"><span class="linenos">1580</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html</span>
</span><span id="L-1581"><a href="#L-1581"><span class="linenos">1581</span></a><span class="k">class</span> <span class="nc">Introducer</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1582"><a href="#L-1582"><span class="linenos">1582</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1583"><a href="#L-1583"><span class="linenos">1583</span></a>
</span><span id="L-1584"><a href="#L-1584"><span class="linenos">1584</span></a>
</span><span id="L-1585"><a href="#L-1585"><span class="linenos">1585</span></a><span class="c1"># national char, like n&#39;utf8&#39;</span>
</span><span id="L-1586"><a href="#L-1586"><span class="linenos">1586</span></a><span class="k">class</span> <span class="nc">National</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1587"><a href="#L-1587"><span class="linenos">1587</span></a> <span class="k">pass</span>
</span><span id="L-1588"><a href="#L-1588"><span class="linenos">1588</span></a>
</span><span id="L-1589"><a href="#L-1589"><span class="linenos">1589</span></a>
</span><span id="L-1590"><a href="#L-1590"><span class="linenos">1590</span></a><span class="k">class</span> <span class="nc">LoadData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1591"><a href="#L-1591"><span class="linenos">1591</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1592"><a href="#L-1592"><span class="linenos">1592</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1593"><a href="#L-1593"><span class="linenos">1593</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1594"><a href="#L-1594"><span class="linenos">1594</span></a> <span class="s2">&quot;overwrite&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1595"><a href="#L-1595"><span class="linenos">1595</span></a> <span class="s2">&quot;inpath&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1596"><a href="#L-1596"><span class="linenos">1596</span></a> <span class="s2">&quot;partition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1597"><a href="#L-1597"><span class="linenos">1597</span></a> <span class="s2">&quot;input_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1598"><a href="#L-1598"><span class="linenos">1598</span></a> <span class="s2">&quot;serde&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1599"><a href="#L-1599"><span class="linenos">1599</span></a> <span class="p">}</span>
</span><span id="L-1600"><a href="#L-1600"><span class="linenos">1600</span></a>
</span><span id="L-1601"><a href="#L-1601"><span class="linenos">1601</span></a>
</span><span id="L-1602"><a href="#L-1602"><span class="linenos">1602</span></a><span class="k">class</span> <span class="nc">Partition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1603"><a href="#L-1603"><span class="linenos">1603</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1604"><a href="#L-1604"><span class="linenos">1604</span></a>
</span><span id="L-1605"><a href="#L-1605"><span class="linenos">1605</span></a>
</span><span id="L-1606"><a href="#L-1606"><span class="linenos">1606</span></a><span class="k">class</span> <span class="nc">Fetch</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1607"><a href="#L-1607"><span class="linenos">1607</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1608"><a href="#L-1608"><span class="linenos">1608</span></a> <span class="s2">&quot;direction&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1609"><a href="#L-1609"><span class="linenos">1609</span></a> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1610"><a href="#L-1610"><span class="linenos">1610</span></a> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1611"><a href="#L-1611"><span class="linenos">1611</span></a> <span class="s2">&quot;with_ties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1612"><a href="#L-1612"><span class="linenos">1612</span></a> <span class="p">}</span>
</span><span id="L-1613"><a href="#L-1613"><span class="linenos">1613</span></a>
</span><span id="L-1614"><a href="#L-1614"><span class="linenos">1614</span></a>
</span><span id="L-1615"><a href="#L-1615"><span class="linenos">1615</span></a><span class="k">class</span> <span class="nc">Group</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1616"><a href="#L-1616"><span class="linenos">1616</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1617"><a href="#L-1617"><span class="linenos">1617</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1618"><a href="#L-1618"><span class="linenos">1618</span></a> <span class="s2">&quot;grouping_sets&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1619"><a href="#L-1619"><span class="linenos">1619</span></a> <span class="s2">&quot;cube&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1620"><a href="#L-1620"><span class="linenos">1620</span></a> <span class="s2">&quot;rollup&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1621"><a href="#L-1621"><span class="linenos">1621</span></a> <span class="s2">&quot;totals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1622"><a href="#L-1622"><span class="linenos">1622</span></a> <span class="p">}</span>
</span><span id="L-1623"><a href="#L-1623"><span class="linenos">1623</span></a>
</span><span id="L-1624"><a href="#L-1624"><span class="linenos">1624</span></a>
</span><span id="L-1625"><a href="#L-1625"><span class="linenos">1625</span></a><span class="k">class</span> <span class="nc">Lambda</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1626"><a href="#L-1626"><span class="linenos">1626</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1627"><a href="#L-1627"><span class="linenos">1627</span></a>
</span><span id="L-1628"><a href="#L-1628"><span class="linenos">1628</span></a>
</span><span id="L-1629"><a href="#L-1629"><span class="linenos">1629</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1630"><a href="#L-1630"><span class="linenos">1630</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1631"><a href="#L-1631"><span class="linenos">1631</span></a>
</span><span id="L-1632"><a href="#L-1632"><span class="linenos">1632</span></a>
</span><span id="L-1633"><a href="#L-1633"><span class="linenos">1633</span></a><span class="k">class</span> <span class="nc">Literal</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="L-1634"><a href="#L-1634"><span class="linenos">1634</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;is_string&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1635"><a href="#L-1635"><span class="linenos">1635</span></a>
</span><span id="L-1636"><a href="#L-1636"><span class="linenos">1636</span></a> <span class="nd">@property</span>
</span><span id="L-1637"><a href="#L-1637"><span class="linenos">1637</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
</span><span id="L-1638"><a href="#L-1638"><span class="linenos">1638</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</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;is_string&quot;</span><span class="p">))</span>
</span><span id="L-1639"><a href="#L-1639"><span class="linenos">1639</span></a>
</span><span id="L-1640"><a href="#L-1640"><span class="linenos">1640</span></a> <span class="nd">@classmethod</span>
</span><span id="L-1641"><a href="#L-1641"><span class="linenos">1641</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
</span><span id="L-1642"><a href="#L-1642"><span class="linenos">1642</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</span><span id="L-1643"><a href="#L-1643"><span class="linenos">1643</span></a>
</span><span id="L-1644"><a href="#L-1644"><span class="linenos">1644</span></a> <span class="nd">@classmethod</span>
</span><span id="L-1645"><a href="#L-1645"><span class="linenos">1645</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
</span><span id="L-1646"><a href="#L-1646"><span class="linenos">1646</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-1647"><a href="#L-1647"><span class="linenos">1647</span></a>
</span><span id="L-1648"><a href="#L-1648"><span class="linenos">1648</span></a> <span class="nd">@property</span>
</span><span id="L-1649"><a href="#L-1649"><span class="linenos">1649</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-1650"><a href="#L-1650"><span class="linenos">1650</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-1651"><a href="#L-1651"><span class="linenos">1651</span></a>
</span><span id="L-1652"><a href="#L-1652"><span class="linenos">1652</span></a>
</span><span id="L-1653"><a href="#L-1653"><span class="linenos">1653</span></a><span class="k">class</span> <span class="nc">Join</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1654"><a href="#L-1654"><span class="linenos">1654</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1655"><a href="#L-1655"><span class="linenos">1655</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1656"><a href="#L-1656"><span class="linenos">1656</span></a> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1657"><a href="#L-1657"><span class="linenos">1657</span></a> <span class="s2">&quot;side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1658"><a href="#L-1658"><span class="linenos">1658</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1659"><a href="#L-1659"><span class="linenos">1659</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1660"><a href="#L-1660"><span class="linenos">1660</span></a> <span class="s2">&quot;natural&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1661"><a href="#L-1661"><span class="linenos">1661</span></a> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1662"><a href="#L-1662"><span class="linenos">1662</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1663"><a href="#L-1663"><span class="linenos">1663</span></a> <span class="p">}</span>
</span><span id="L-1664"><a href="#L-1664"><span class="linenos">1664</span></a>
</span><span id="L-1665"><a href="#L-1665"><span class="linenos">1665</span></a> <span class="nd">@property</span>
</span><span id="L-1666"><a href="#L-1666"><span class="linenos">1666</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-1667"><a href="#L-1667"><span class="linenos">1667</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
</span><span id="L-1668"><a href="#L-1668"><span class="linenos">1668</span></a>
</span><span id="L-1669"><a href="#L-1669"><span class="linenos">1669</span></a> <span class="nd">@property</span>
</span><span id="L-1670"><a href="#L-1670"><span class="linenos">1670</span></a> <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-1671"><a href="#L-1671"><span class="linenos">1671</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
</span><span id="L-1672"><a href="#L-1672"><span class="linenos">1672</span></a>
</span><span id="L-1673"><a href="#L-1673"><span class="linenos">1673</span></a> <span class="nd">@property</span>
</span><span id="L-1674"><a href="#L-1674"><span class="linenos">1674</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-1675"><a href="#L-1675"><span class="linenos">1675</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;hint&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
</span><span id="L-1676"><a href="#L-1676"><span class="linenos">1676</span></a>
</span><span id="L-1677"><a href="#L-1677"><span class="linenos">1677</span></a> <span class="nd">@property</span>
</span><span id="L-1678"><a href="#L-1678"><span class="linenos">1678</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-1679"><a href="#L-1679"><span class="linenos">1679</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span>
</span><span id="L-1680"><a href="#L-1680"><span class="linenos">1680</span></a>
</span><span id="L-1681"><a href="#L-1681"><span class="linenos">1681</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
</span><span id="L-1682"><a href="#L-1682"><span class="linenos">1682</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-1683"><a href="#L-1683"><span class="linenos">1683</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-1684"><a href="#L-1684"><span class="linenos">1684</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1685"><a href="#L-1685"><span class="linenos">1685</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-1686"><a href="#L-1686"><span class="linenos">1686</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1687"><a href="#L-1687"><span class="linenos">1687</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-1688"><a href="#L-1688"><span class="linenos">1688</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
</span><span id="L-1689"><a href="#L-1689"><span class="linenos">1689</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-1690"><a href="#L-1690"><span class="linenos">1690</span></a><span class="sd"> Append to or set the ON expressions.</span>
</span><span id="L-1691"><a href="#L-1691"><span class="linenos">1691</span></a>
</span><span id="L-1692"><a href="#L-1692"><span class="linenos">1692</span></a><span class="sd"> Example:</span>
</span><span id="L-1693"><a href="#L-1693"><span class="linenos">1693</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="L-1694"><a href="#L-1694"><span class="linenos">1694</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).on(&quot;y = 1&quot;).sql()</span>
</span><span id="L-1695"><a href="#L-1695"><span class="linenos">1695</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
</span><span id="L-1696"><a href="#L-1696"><span class="linenos">1696</span></a>
</span><span id="L-1697"><a href="#L-1697"><span class="linenos">1697</span></a><span class="sd"> Args:</span>
</span><span id="L-1698"><a href="#L-1698"><span class="linenos">1698</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-1699"><a href="#L-1699"><span class="linenos">1699</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-1700"><a href="#L-1700"><span class="linenos">1700</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
</span><span id="L-1701"><a href="#L-1701"><span class="linenos">1701</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
</span><span id="L-1702"><a href="#L-1702"><span class="linenos">1702</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="L-1703"><a href="#L-1703"><span class="linenos">1703</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="L-1704"><a href="#L-1704"><span class="linenos">1704</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-1705"><a href="#L-1705"><span class="linenos">1705</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-1706"><a href="#L-1706"><span class="linenos">1706</span></a>
</span><span id="L-1707"><a href="#L-1707"><span class="linenos">1707</span></a><span class="sd"> Returns:</span>
</span><span id="L-1708"><a href="#L-1708"><span class="linenos">1708</span></a><span class="sd"> The modified Join expression.</span>
</span><span id="L-1709"><a href="#L-1709"><span class="linenos">1709</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-1710"><a href="#L-1710"><span class="linenos">1710</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="L-1711"><a href="#L-1711"><span class="linenos">1711</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-1712"><a href="#L-1712"><span class="linenos">1712</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-1713"><a href="#L-1713"><span class="linenos">1713</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;on&quot;</span><span class="p">,</span>
</span><span id="L-1714"><a href="#L-1714"><span class="linenos">1714</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-1715"><a href="#L-1715"><span class="linenos">1715</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-1716"><a href="#L-1716"><span class="linenos">1716</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-1717"><a href="#L-1717"><span class="linenos">1717</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-1718"><a href="#L-1718"><span class="linenos">1718</span></a> <span class="p">)</span>
</span><span id="L-1719"><a href="#L-1719"><span class="linenos">1719</span></a>
</span><span id="L-1720"><a href="#L-1720"><span class="linenos">1720</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
</span><span id="L-1721"><a href="#L-1721"><span class="linenos">1721</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="L-1722"><a href="#L-1722"><span class="linenos">1722</span></a>
</span><span id="L-1723"><a href="#L-1723"><span class="linenos">1723</span></a> <span class="k">return</span> <span class="n">join</span>
</span><span id="L-1724"><a href="#L-1724"><span class="linenos">1724</span></a>
</span><span id="L-1725"><a href="#L-1725"><span class="linenos">1725</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
</span><span id="L-1726"><a href="#L-1726"><span class="linenos">1726</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-1727"><a href="#L-1727"><span class="linenos">1727</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-1728"><a href="#L-1728"><span class="linenos">1728</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1729"><a href="#L-1729"><span class="linenos">1729</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-1730"><a href="#L-1730"><span class="linenos">1730</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1731"><a href="#L-1731"><span class="linenos">1731</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-1732"><a href="#L-1732"><span class="linenos">1732</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
</span><span id="L-1733"><a href="#L-1733"><span class="linenos">1733</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-1734"><a href="#L-1734"><span class="linenos">1734</span></a><span class="sd"> Append to or set the USING expressions.</span>
</span><span id="L-1735"><a href="#L-1735"><span class="linenos">1735</span></a>
</span><span id="L-1736"><a href="#L-1736"><span class="linenos">1736</span></a><span class="sd"> Example:</span>
</span><span id="L-1737"><a href="#L-1737"><span class="linenos">1737</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="L-1738"><a href="#L-1738"><span class="linenos">1738</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).using(&quot;foo&quot;, &quot;bla&quot;).sql()</span>
</span><span id="L-1739"><a href="#L-1739"><span class="linenos">1739</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
</span><span id="L-1740"><a href="#L-1740"><span class="linenos">1740</span></a>
</span><span id="L-1741"><a href="#L-1741"><span class="linenos">1741</span></a><span class="sd"> Args:</span>
</span><span id="L-1742"><a href="#L-1742"><span class="linenos">1742</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-1743"><a href="#L-1743"><span class="linenos">1743</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-1744"><a href="#L-1744"><span class="linenos">1744</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
</span><span id="L-1745"><a href="#L-1745"><span class="linenos">1745</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="L-1746"><a href="#L-1746"><span class="linenos">1746</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="L-1747"><a href="#L-1747"><span class="linenos">1747</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-1748"><a href="#L-1748"><span class="linenos">1748</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-1749"><a href="#L-1749"><span class="linenos">1749</span></a>
</span><span id="L-1750"><a href="#L-1750"><span class="linenos">1750</span></a><span class="sd"> Returns:</span>
</span><span id="L-1751"><a href="#L-1751"><span class="linenos">1751</span></a><span class="sd"> The modified Join expression.</span>
</span><span id="L-1752"><a href="#L-1752"><span class="linenos">1752</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-1753"><a href="#L-1753"><span class="linenos">1753</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="L-1754"><a href="#L-1754"><span class="linenos">1754</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-1755"><a href="#L-1755"><span class="linenos">1755</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-1756"><a href="#L-1756"><span class="linenos">1756</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
</span><span id="L-1757"><a href="#L-1757"><span class="linenos">1757</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-1758"><a href="#L-1758"><span class="linenos">1758</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-1759"><a href="#L-1759"><span class="linenos">1759</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-1760"><a href="#L-1760"><span class="linenos">1760</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-1761"><a href="#L-1761"><span class="linenos">1761</span></a> <span class="p">)</span>
</span><span id="L-1762"><a href="#L-1762"><span class="linenos">1762</span></a>
</span><span id="L-1763"><a href="#L-1763"><span class="linenos">1763</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
</span><span id="L-1764"><a href="#L-1764"><span class="linenos">1764</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="L-1765"><a href="#L-1765"><span class="linenos">1765</span></a>
</span><span id="L-1766"><a href="#L-1766"><span class="linenos">1766</span></a> <span class="k">return</span> <span class="n">join</span>
</span><span id="L-1767"><a href="#L-1767"><span class="linenos">1767</span></a>
</span><span id="L-1768"><a href="#L-1768"><span class="linenos">1768</span></a>
</span><span id="L-1769"><a href="#L-1769"><span class="linenos">1769</span></a><span class="k">class</span> <span class="nc">Lateral</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
</span><span id="L-1770"><a href="#L-1770"><span class="linenos">1770</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;view&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;outer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1771"><a href="#L-1771"><span class="linenos">1771</span></a>
</span><span id="L-1772"><a href="#L-1772"><span class="linenos">1772</span></a>
</span><span id="L-1773"><a href="#L-1773"><span class="linenos">1773</span></a><span class="k">class</span> <span class="nc">MatchRecognize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1774"><a href="#L-1774"><span class="linenos">1774</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1775"><a href="#L-1775"><span class="linenos">1775</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1776"><a href="#L-1776"><span class="linenos">1776</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1777"><a href="#L-1777"><span class="linenos">1777</span></a> <span class="s2">&quot;measures&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1778"><a href="#L-1778"><span class="linenos">1778</span></a> <span class="s2">&quot;rows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1779"><a href="#L-1779"><span class="linenos">1779</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1780"><a href="#L-1780"><span class="linenos">1780</span></a> <span class="s2">&quot;pattern&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1781"><a href="#L-1781"><span class="linenos">1781</span></a> <span class="s2">&quot;define&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1782"><a href="#L-1782"><span class="linenos">1782</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1783"><a href="#L-1783"><span class="linenos">1783</span></a> <span class="p">}</span>
</span><span id="L-1784"><a href="#L-1784"><span class="linenos">1784</span></a>
</span><span id="L-1785"><a href="#L-1785"><span class="linenos">1785</span></a>
</span><span id="L-1786"><a href="#L-1786"><span class="linenos">1786</span></a><span class="c1"># Clickhouse FROM FINAL modifier</span>
</span><span id="L-1787"><a href="#L-1787"><span class="linenos">1787</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/from/#final-modifier</span>
</span><span id="L-1788"><a href="#L-1788"><span class="linenos">1788</span></a><span class="k">class</span> <span class="nc">Final</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1789"><a href="#L-1789"><span class="linenos">1789</span></a> <span class="k">pass</span>
</span><span id="L-1790"><a href="#L-1790"><span class="linenos">1790</span></a>
</span><span id="L-1791"><a href="#L-1791"><span class="linenos">1791</span></a>
</span><span id="L-1792"><a href="#L-1792"><span class="linenos">1792</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1793"><a href="#L-1793"><span class="linenos">1793</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1794"><a href="#L-1794"><span class="linenos">1794</span></a>
</span><span id="L-1795"><a href="#L-1795"><span class="linenos">1795</span></a>
</span><span id="L-1796"><a href="#L-1796"><span class="linenos">1796</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1797"><a href="#L-1797"><span class="linenos">1797</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1798"><a href="#L-1798"><span class="linenos">1798</span></a>
</span><span id="L-1799"><a href="#L-1799"><span class="linenos">1799</span></a>
</span><span id="L-1800"><a href="#L-1800"><span class="linenos">1800</span></a><span class="c1"># hive specific sorts</span>
</span><span id="L-1801"><a href="#L-1801"><span class="linenos">1801</span></a><span class="c1"># https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy</span>
</span><span id="L-1802"><a href="#L-1802"><span class="linenos">1802</span></a><span class="k">class</span> <span class="nc">Cluster</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
</span><span id="L-1803"><a href="#L-1803"><span class="linenos">1803</span></a> <span class="k">pass</span>
</span><span id="L-1804"><a href="#L-1804"><span class="linenos">1804</span></a>
</span><span id="L-1805"><a href="#L-1805"><span class="linenos">1805</span></a>
</span><span id="L-1806"><a href="#L-1806"><span class="linenos">1806</span></a><span class="k">class</span> <span class="nc">Distribute</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
</span><span id="L-1807"><a href="#L-1807"><span class="linenos">1807</span></a> <span class="k">pass</span>
</span><span id="L-1808"><a href="#L-1808"><span class="linenos">1808</span></a>
</span><span id="L-1809"><a href="#L-1809"><span class="linenos">1809</span></a>
</span><span id="L-1810"><a href="#L-1810"><span class="linenos">1810</span></a><span class="k">class</span> <span class="nc">Sort</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
</span><span id="L-1811"><a href="#L-1811"><span class="linenos">1811</span></a> <span class="k">pass</span>
</span><span id="L-1812"><a href="#L-1812"><span class="linenos">1812</span></a>
</span><span id="L-1813"><a href="#L-1813"><span class="linenos">1813</span></a>
</span><span id="L-1814"><a href="#L-1814"><span class="linenos">1814</span></a><span class="k">class</span> <span class="nc">Ordered</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1815"><a href="#L-1815"><span class="linenos">1815</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1816"><a href="#L-1816"><span class="linenos">1816</span></a>
</span><span id="L-1817"><a href="#L-1817"><span class="linenos">1817</span></a>
</span><span id="L-1818"><a href="#L-1818"><span class="linenos">1818</span></a><span class="k">class</span> <span class="nc">Property</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1819"><a href="#L-1819"><span class="linenos">1819</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1820"><a href="#L-1820"><span class="linenos">1820</span></a>
</span><span id="L-1821"><a href="#L-1821"><span class="linenos">1821</span></a>
</span><span id="L-1822"><a href="#L-1822"><span class="linenos">1822</span></a><span class="k">class</span> <span class="nc">AlgorithmProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1823"><a href="#L-1823"><span class="linenos">1823</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1824"><a href="#L-1824"><span class="linenos">1824</span></a>
</span><span id="L-1825"><a href="#L-1825"><span class="linenos">1825</span></a>
</span><span id="L-1826"><a href="#L-1826"><span class="linenos">1826</span></a><span class="k">class</span> <span class="nc">AutoIncrementProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1827"><a href="#L-1827"><span class="linenos">1827</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1828"><a href="#L-1828"><span class="linenos">1828</span></a>
</span><span id="L-1829"><a href="#L-1829"><span class="linenos">1829</span></a>
</span><span id="L-1830"><a href="#L-1830"><span class="linenos">1830</span></a><span class="k">class</span> <span class="nc">BlockCompressionProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1831"><a href="#L-1831"><span class="linenos">1831</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;autotemp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;always&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;manual&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;never&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1832"><a href="#L-1832"><span class="linenos">1832</span></a>
</span><span id="L-1833"><a href="#L-1833"><span class="linenos">1833</span></a>
</span><span id="L-1834"><a href="#L-1834"><span class="linenos">1834</span></a><span class="k">class</span> <span class="nc">CharacterSetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1835"><a href="#L-1835"><span class="linenos">1835</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1836"><a href="#L-1836"><span class="linenos">1836</span></a>
</span><span id="L-1837"><a href="#L-1837"><span class="linenos">1837</span></a>
</span><span id="L-1838"><a href="#L-1838"><span class="linenos">1838</span></a><span class="k">class</span> <span class="nc">ChecksumProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1839"><a href="#L-1839"><span class="linenos">1839</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1840"><a href="#L-1840"><span class="linenos">1840</span></a>
</span><span id="L-1841"><a href="#L-1841"><span class="linenos">1841</span></a>
</span><span id="L-1842"><a href="#L-1842"><span class="linenos">1842</span></a><span class="k">class</span> <span class="nc">CollateProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1843"><a href="#L-1843"><span class="linenos">1843</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1844"><a href="#L-1844"><span class="linenos">1844</span></a>
</span><span id="L-1845"><a href="#L-1845"><span class="linenos">1845</span></a>
</span><span id="L-1846"><a href="#L-1846"><span class="linenos">1846</span></a><span class="k">class</span> <span class="nc">DataBlocksizeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1847"><a href="#L-1847"><span class="linenos">1847</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1848"><a href="#L-1848"><span class="linenos">1848</span></a> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1849"><a href="#L-1849"><span class="linenos">1849</span></a> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1850"><a href="#L-1850"><span class="linenos">1850</span></a> <span class="s2">&quot;minimum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1851"><a href="#L-1851"><span class="linenos">1851</span></a> <span class="s2">&quot;maximum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1852"><a href="#L-1852"><span class="linenos">1852</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1853"><a href="#L-1853"><span class="linenos">1853</span></a> <span class="p">}</span>
</span><span id="L-1854"><a href="#L-1854"><span class="linenos">1854</span></a>
</span><span id="L-1855"><a href="#L-1855"><span class="linenos">1855</span></a>
</span><span id="L-1856"><a href="#L-1856"><span class="linenos">1856</span></a><span class="k">class</span> <span class="nc">DefinerProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1857"><a href="#L-1857"><span class="linenos">1857</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1858"><a href="#L-1858"><span class="linenos">1858</span></a>
</span><span id="L-1859"><a href="#L-1859"><span class="linenos">1859</span></a>
</span><span id="L-1860"><a href="#L-1860"><span class="linenos">1860</span></a><span class="k">class</span> <span class="nc">DistKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1861"><a href="#L-1861"><span class="linenos">1861</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1862"><a href="#L-1862"><span class="linenos">1862</span></a>
</span><span id="L-1863"><a href="#L-1863"><span class="linenos">1863</span></a>
</span><span id="L-1864"><a href="#L-1864"><span class="linenos">1864</span></a><span class="k">class</span> <span class="nc">DistStyleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1865"><a href="#L-1865"><span class="linenos">1865</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1866"><a href="#L-1866"><span class="linenos">1866</span></a>
</span><span id="L-1867"><a href="#L-1867"><span class="linenos">1867</span></a>
</span><span id="L-1868"><a href="#L-1868"><span class="linenos">1868</span></a><span class="k">class</span> <span class="nc">EngineProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1869"><a href="#L-1869"><span class="linenos">1869</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1870"><a href="#L-1870"><span class="linenos">1870</span></a>
</span><span id="L-1871"><a href="#L-1871"><span class="linenos">1871</span></a>
</span><span id="L-1872"><a href="#L-1872"><span class="linenos">1872</span></a><span class="k">class</span> <span class="nc">ExecuteAsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1873"><a href="#L-1873"><span class="linenos">1873</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1874"><a href="#L-1874"><span class="linenos">1874</span></a>
</span><span id="L-1875"><a href="#L-1875"><span class="linenos">1875</span></a>
</span><span id="L-1876"><a href="#L-1876"><span class="linenos">1876</span></a><span class="k">class</span> <span class="nc">ExternalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1877"><a href="#L-1877"><span class="linenos">1877</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1878"><a href="#L-1878"><span class="linenos">1878</span></a>
</span><span id="L-1879"><a href="#L-1879"><span class="linenos">1879</span></a>
</span><span id="L-1880"><a href="#L-1880"><span class="linenos">1880</span></a><span class="k">class</span> <span class="nc">FallbackProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1881"><a href="#L-1881"><span class="linenos">1881</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;protection&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1882"><a href="#L-1882"><span class="linenos">1882</span></a>
</span><span id="L-1883"><a href="#L-1883"><span class="linenos">1883</span></a>
</span><span id="L-1884"><a href="#L-1884"><span class="linenos">1884</span></a><span class="k">class</span> <span class="nc">FileFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1885"><a href="#L-1885"><span class="linenos">1885</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1886"><a href="#L-1886"><span class="linenos">1886</span></a>
</span><span id="L-1887"><a href="#L-1887"><span class="linenos">1887</span></a>
</span><span id="L-1888"><a href="#L-1888"><span class="linenos">1888</span></a><span class="k">class</span> <span class="nc">FreespaceProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1889"><a href="#L-1889"><span class="linenos">1889</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1890"><a href="#L-1890"><span class="linenos">1890</span></a>
</span><span id="L-1891"><a href="#L-1891"><span class="linenos">1891</span></a>
</span><span id="L-1892"><a href="#L-1892"><span class="linenos">1892</span></a><span class="k">class</span> <span class="nc">InputOutputFormat</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-1893"><a href="#L-1893"><span class="linenos">1893</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;input_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;output_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1894"><a href="#L-1894"><span class="linenos">1894</span></a>
</span><span id="L-1895"><a href="#L-1895"><span class="linenos">1895</span></a>
</span><span id="L-1896"><a href="#L-1896"><span class="linenos">1896</span></a><span class="k">class</span> <span class="nc">IsolatedLoadingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1897"><a href="#L-1897"><span class="linenos">1897</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1898"><a href="#L-1898"><span class="linenos">1898</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1899"><a href="#L-1899"><span class="linenos">1899</span></a> <span class="s2">&quot;concurrent&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1900"><a href="#L-1900"><span class="linenos">1900</span></a> <span class="s2">&quot;for_all&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1901"><a href="#L-1901"><span class="linenos">1901</span></a> <span class="s2">&quot;for_insert&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1902"><a href="#L-1902"><span class="linenos">1902</span></a> <span class="s2">&quot;for_none&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1903"><a href="#L-1903"><span class="linenos">1903</span></a> <span class="p">}</span>
</span><span id="L-1904"><a href="#L-1904"><span class="linenos">1904</span></a>
</span><span id="L-1905"><a href="#L-1905"><span class="linenos">1905</span></a>
</span><span id="L-1906"><a href="#L-1906"><span class="linenos">1906</span></a><span class="k">class</span> <span class="nc">JournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1907"><a href="#L-1907"><span class="linenos">1907</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1908"><a href="#L-1908"><span class="linenos">1908</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1909"><a href="#L-1909"><span class="linenos">1909</span></a> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1910"><a href="#L-1910"><span class="linenos">1910</span></a> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1911"><a href="#L-1911"><span class="linenos">1911</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1912"><a href="#L-1912"><span class="linenos">1912</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1913"><a href="#L-1913"><span class="linenos">1913</span></a> <span class="p">}</span>
</span><span id="L-1914"><a href="#L-1914"><span class="linenos">1914</span></a>
</span><span id="L-1915"><a href="#L-1915"><span class="linenos">1915</span></a>
</span><span id="L-1916"><a href="#L-1916"><span class="linenos">1916</span></a><span class="k">class</span> <span class="nc">LanguageProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1917"><a href="#L-1917"><span class="linenos">1917</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1918"><a href="#L-1918"><span class="linenos">1918</span></a>
</span><span id="L-1919"><a href="#L-1919"><span class="linenos">1919</span></a>
</span><span id="L-1920"><a href="#L-1920"><span class="linenos">1920</span></a><span class="k">class</span> <span class="nc">LikeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1921"><a href="#L-1921"><span class="linenos">1921</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1922"><a href="#L-1922"><span class="linenos">1922</span></a>
</span><span id="L-1923"><a href="#L-1923"><span class="linenos">1923</span></a>
</span><span id="L-1924"><a href="#L-1924"><span class="linenos">1924</span></a><span class="k">class</span> <span class="nc">LocationProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1925"><a href="#L-1925"><span class="linenos">1925</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1926"><a href="#L-1926"><span class="linenos">1926</span></a>
</span><span id="L-1927"><a href="#L-1927"><span class="linenos">1927</span></a>
</span><span id="L-1928"><a href="#L-1928"><span class="linenos">1928</span></a><span class="k">class</span> <span class="nc">LockingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1929"><a href="#L-1929"><span class="linenos">1929</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1930"><a href="#L-1930"><span class="linenos">1930</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1931"><a href="#L-1931"><span class="linenos">1931</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1932"><a href="#L-1932"><span class="linenos">1932</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1933"><a href="#L-1933"><span class="linenos">1933</span></a> <span class="s2">&quot;lock_type&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-1934"><a href="#L-1934"><span class="linenos">1934</span></a> <span class="s2">&quot;override&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1935"><a href="#L-1935"><span class="linenos">1935</span></a> <span class="p">}</span>
</span><span id="L-1936"><a href="#L-1936"><span class="linenos">1936</span></a>
</span><span id="L-1937"><a href="#L-1937"><span class="linenos">1937</span></a>
</span><span id="L-1938"><a href="#L-1938"><span class="linenos">1938</span></a><span class="k">class</span> <span class="nc">LogProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1939"><a href="#L-1939"><span class="linenos">1939</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1940"><a href="#L-1940"><span class="linenos">1940</span></a>
</span><span id="L-1941"><a href="#L-1941"><span class="linenos">1941</span></a>
</span><span id="L-1942"><a href="#L-1942"><span class="linenos">1942</span></a><span class="k">class</span> <span class="nc">MaterializedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1943"><a href="#L-1943"><span class="linenos">1943</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1944"><a href="#L-1944"><span class="linenos">1944</span></a>
</span><span id="L-1945"><a href="#L-1945"><span class="linenos">1945</span></a>
</span><span id="L-1946"><a href="#L-1946"><span class="linenos">1946</span></a><span class="k">class</span> <span class="nc">MergeBlockRatioProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1947"><a href="#L-1947"><span class="linenos">1947</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1948"><a href="#L-1948"><span class="linenos">1948</span></a>
</span><span id="L-1949"><a href="#L-1949"><span class="linenos">1949</span></a>
</span><span id="L-1950"><a href="#L-1950"><span class="linenos">1950</span></a><span class="k">class</span> <span class="nc">NoPrimaryIndexProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1951"><a href="#L-1951"><span class="linenos">1951</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-1952"><a href="#L-1952"><span class="linenos">1952</span></a>
</span><span id="L-1953"><a href="#L-1953"><span class="linenos">1953</span></a>
</span><span id="L-1954"><a href="#L-1954"><span class="linenos">1954</span></a><span class="k">class</span> <span class="nc">OnCommitProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1955"><a href="#L-1955"><span class="linenos">1955</span></a> <span class="n">arg_type</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1956"><a href="#L-1956"><span class="linenos">1956</span></a>
</span><span id="L-1957"><a href="#L-1957"><span class="linenos">1957</span></a>
</span><span id="L-1958"><a href="#L-1958"><span class="linenos">1958</span></a><span class="k">class</span> <span class="nc">PartitionedByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1960"><a href="#L-1960"><span class="linenos">1960</span></a>
</span><span id="L-1961"><a href="#L-1961"><span class="linenos">1961</span></a>
</span><span id="L-1962"><a href="#L-1962"><span class="linenos">1962</span></a><span class="k">class</span> <span class="nc">ReturnsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1963"><a href="#L-1963"><span class="linenos">1963</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;is_table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-1964"><a href="#L-1964"><span class="linenos">1964</span></a>
</span><span id="L-1965"><a href="#L-1965"><span class="linenos">1965</span></a>
</span><span id="L-1966"><a href="#L-1966"><span class="linenos">1966</span></a><span class="k">class</span> <span class="nc">RowFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1967"><a href="#L-1967"><span class="linenos">1967</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1968"><a href="#L-1968"><span class="linenos">1968</span></a>
</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a>
</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a><span class="k">class</span> <span class="nc">RowFormatDelimitedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a> <span class="s2">&quot;fields&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a> <span class="s2">&quot;escaped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a> <span class="s2">&quot;collection_items&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</span></a> <span class="s2">&quot;map_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1977"><a href="#L-1977"><span class="linenos">1977</span></a> <span class="s2">&quot;lines&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1978"><a href="#L-1978"><span class="linenos">1978</span></a> <span class="s2">&quot;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1979"><a href="#L-1979"><span class="linenos">1979</span></a> <span class="s2">&quot;serde&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-1980"><a href="#L-1980"><span class="linenos">1980</span></a> <span class="p">}</span>
</span><span id="L-1981"><a href="#L-1981"><span class="linenos">1981</span></a>
</span><span id="L-1982"><a href="#L-1982"><span class="linenos">1982</span></a>
</span><span id="L-1983"><a href="#L-1983"><span class="linenos">1983</span></a><span class="k">class</span> <span class="nc">RowFormatSerdeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1984"><a href="#L-1984"><span class="linenos">1984</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1985"><a href="#L-1985"><span class="linenos">1985</span></a>
</span><span id="L-1986"><a href="#L-1986"><span class="linenos">1986</span></a>
</span><span id="L-1987"><a href="#L-1987"><span class="linenos">1987</span></a><span class="k">class</span> <span class="nc">SchemaCommentProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1988"><a href="#L-1988"><span class="linenos">1988</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1989"><a href="#L-1989"><span class="linenos">1989</span></a>
</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</span></a>
</span><span id="L-1991"><a href="#L-1991"><span class="linenos">1991</span></a><span class="k">class</span> <span class="nc">SerdeProperties</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1992"><a href="#L-1992"><span class="linenos">1992</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1993"><a href="#L-1993"><span class="linenos">1993</span></a>
</span><span id="L-1994"><a href="#L-1994"><span class="linenos">1994</span></a>
</span><span id="L-1995"><a href="#L-1995"><span class="linenos">1995</span></a><span class="k">class</span> <span class="nc">SetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-1996"><a href="#L-1996"><span class="linenos">1996</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;multi&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-1997"><a href="#L-1997"><span class="linenos">1997</span></a>
</span><span id="L-1998"><a href="#L-1998"><span class="linenos">1998</span></a>
</span><span id="L-1999"><a href="#L-1999"><span class="linenos">1999</span></a><span class="k">class</span> <span class="nc">SettingsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-2000"><a href="#L-2000"><span class="linenos">2000</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2001"><a href="#L-2001"><span class="linenos">2001</span></a>
</span><span id="L-2002"><a href="#L-2002"><span class="linenos">2002</span></a>
</span><span id="L-2003"><a href="#L-2003"><span class="linenos">2003</span></a><span class="k">class</span> <span class="nc">SortKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-2004"><a href="#L-2004"><span class="linenos">2004</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;compound&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2005"><a href="#L-2005"><span class="linenos">2005</span></a>
</span><span id="L-2006"><a href="#L-2006"><span class="linenos">2006</span></a>
</span><span id="L-2007"><a href="#L-2007"><span class="linenos">2007</span></a><span class="k">class</span> <span class="nc">SqlSecurityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-2008"><a href="#L-2008"><span class="linenos">2008</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;definer&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2009"><a href="#L-2009"><span class="linenos">2009</span></a>
</span><span id="L-2010"><a href="#L-2010"><span class="linenos">2010</span></a>
</span><span id="L-2011"><a href="#L-2011"><span class="linenos">2011</span></a><span class="k">class</span> <span class="nc">StabilityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-2012"><a href="#L-2012"><span class="linenos">2012</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2013"><a href="#L-2013"><span class="linenos">2013</span></a>
</span><span id="L-2014"><a href="#L-2014"><span class="linenos">2014</span></a>
</span><span id="L-2015"><a href="#L-2015"><span class="linenos">2015</span></a><span class="k">class</span> <span class="nc">TemporaryProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-2016"><a href="#L-2016"><span class="linenos">2016</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-2017"><a href="#L-2017"><span class="linenos">2017</span></a>
</span><span id="L-2018"><a href="#L-2018"><span class="linenos">2018</span></a>
</span><span id="L-2019"><a href="#L-2019"><span class="linenos">2019</span></a><span class="k">class</span> <span class="nc">TransientProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-2020"><a href="#L-2020"><span class="linenos">2020</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2021"><a href="#L-2021"><span class="linenos">2021</span></a>
</span><span id="L-2022"><a href="#L-2022"><span class="linenos">2022</span></a>
</span><span id="L-2023"><a href="#L-2023"><span class="linenos">2023</span></a><span class="k">class</span> <span class="nc">VolatileProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-2024"><a href="#L-2024"><span class="linenos">2024</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2025"><a href="#L-2025"><span class="linenos">2025</span></a>
</span><span id="L-2026"><a href="#L-2026"><span class="linenos">2026</span></a>
</span><span id="L-2027"><a href="#L-2027"><span class="linenos">2027</span></a><span class="k">class</span> <span class="nc">WithDataProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-2028"><a href="#L-2028"><span class="linenos">2028</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;statistics&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2029"><a href="#L-2029"><span class="linenos">2029</span></a>
</span><span id="L-2030"><a href="#L-2030"><span class="linenos">2030</span></a>
</span><span id="L-2031"><a href="#L-2031"><span class="linenos">2031</span></a><span class="k">class</span> <span class="nc">WithJournalTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="L-2032"><a href="#L-2032"><span class="linenos">2032</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2033"><a href="#L-2033"><span class="linenos">2033</span></a>
</span><span id="L-2034"><a href="#L-2034"><span class="linenos">2034</span></a>
</span><span id="L-2035"><a href="#L-2035"><span class="linenos">2035</span></a><span class="k">class</span> <span class="nc">Properties</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-2036"><a href="#L-2036"><span class="linenos">2036</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-2037"><a href="#L-2037"><span class="linenos">2037</span></a>
</span><span id="L-2038"><a href="#L-2038"><span class="linenos">2038</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-2039"><a href="#L-2039"><span class="linenos">2039</span></a> <span class="s2">&quot;ALGORITHM&quot;</span><span class="p">:</span> <span class="n">AlgorithmProperty</span><span class="p">,</span>
</span><span id="L-2040"><a href="#L-2040"><span class="linenos">2040</span></a> <span class="s2">&quot;AUTO_INCREMENT&quot;</span><span class="p">:</span> <span class="n">AutoIncrementProperty</span><span class="p">,</span>
</span><span id="L-2041"><a href="#L-2041"><span class="linenos">2041</span></a> <span class="s2">&quot;CHARACTER SET&quot;</span><span class="p">:</span> <span class="n">CharacterSetProperty</span><span class="p">,</span>
</span><span id="L-2042"><a href="#L-2042"><span class="linenos">2042</span></a> <span class="s2">&quot;COLLATE&quot;</span><span class="p">:</span> <span class="n">CollateProperty</span><span class="p">,</span>
</span><span id="L-2043"><a href="#L-2043"><span class="linenos">2043</span></a> <span class="s2">&quot;COMMENT&quot;</span><span class="p">:</span> <span class="n">SchemaCommentProperty</span><span class="p">,</span>
</span><span id="L-2044"><a href="#L-2044"><span class="linenos">2044</span></a> <span class="s2">&quot;DEFINER&quot;</span><span class="p">:</span> <span class="n">DefinerProperty</span><span class="p">,</span>
</span><span id="L-2045"><a href="#L-2045"><span class="linenos">2045</span></a> <span class="s2">&quot;DISTKEY&quot;</span><span class="p">:</span> <span class="n">DistKeyProperty</span><span class="p">,</span>
</span><span id="L-2046"><a href="#L-2046"><span class="linenos">2046</span></a> <span class="s2">&quot;DISTSTYLE&quot;</span><span class="p">:</span> <span class="n">DistStyleProperty</span><span class="p">,</span>
</span><span id="L-2047"><a href="#L-2047"><span class="linenos">2047</span></a> <span class="s2">&quot;ENGINE&quot;</span><span class="p">:</span> <span class="n">EngineProperty</span><span class="p">,</span>
</span><span id="L-2048"><a href="#L-2048"><span class="linenos">2048</span></a> <span class="s2">&quot;EXECUTE AS&quot;</span><span class="p">:</span> <span class="n">ExecuteAsProperty</span><span class="p">,</span>
</span><span id="L-2049"><a href="#L-2049"><span class="linenos">2049</span></a> <span class="s2">&quot;FORMAT&quot;</span><span class="p">:</span> <span class="n">FileFormatProperty</span><span class="p">,</span>
</span><span id="L-2050"><a href="#L-2050"><span class="linenos">2050</span></a> <span class="s2">&quot;LANGUAGE&quot;</span><span class="p">:</span> <span class="n">LanguageProperty</span><span class="p">,</span>
</span><span id="L-2051"><a href="#L-2051"><span class="linenos">2051</span></a> <span class="s2">&quot;LOCATION&quot;</span><span class="p">:</span> <span class="n">LocationProperty</span><span class="p">,</span>
</span><span id="L-2052"><a href="#L-2052"><span class="linenos">2052</span></a> <span class="s2">&quot;PARTITIONED_BY&quot;</span><span class="p">:</span> <span class="n">PartitionedByProperty</span><span class="p">,</span>
</span><span id="L-2053"><a href="#L-2053"><span class="linenos">2053</span></a> <span class="s2">&quot;RETURNS&quot;</span><span class="p">:</span> <span class="n">ReturnsProperty</span><span class="p">,</span>
</span><span id="L-2054"><a href="#L-2054"><span class="linenos">2054</span></a> <span class="s2">&quot;ROW_FORMAT&quot;</span><span class="p">:</span> <span class="n">RowFormatProperty</span><span class="p">,</span>
</span><span id="L-2055"><a href="#L-2055"><span class="linenos">2055</span></a> <span class="s2">&quot;SORTKEY&quot;</span><span class="p">:</span> <span class="n">SortKeyProperty</span><span class="p">,</span>
</span><span id="L-2056"><a href="#L-2056"><span class="linenos">2056</span></a> <span class="p">}</span>
</span><span id="L-2057"><a href="#L-2057"><span class="linenos">2057</span></a>
</span><span id="L-2058"><a href="#L-2058"><span class="linenos">2058</span></a> <span class="n">PROPERTY_TO_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="p">:</span> <span class="n">k</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
</span><span id="L-2059"><a href="#L-2059"><span class="linenos">2059</span></a>
</span><span id="L-2060"><a href="#L-2060"><span class="linenos">2060</span></a> <span class="c1"># CREATE property locations</span>
</span><span id="L-2061"><a href="#L-2061"><span class="linenos">2061</span></a> <span class="c1"># Form: schema specified</span>
</span><span id="L-2062"><a href="#L-2062"><span class="linenos">2062</span></a> <span class="c1"># create [POST_CREATE]</span>
</span><span id="L-2063"><a href="#L-2063"><span class="linenos">2063</span></a> <span class="c1"># table a [POST_NAME]</span>
</span><span id="L-2064"><a href="#L-2064"><span class="linenos">2064</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
</span><span id="L-2065"><a href="#L-2065"><span class="linenos">2065</span></a> <span class="c1"># with ([POST_WITH])</span>
</span><span id="L-2066"><a href="#L-2066"><span class="linenos">2066</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
</span><span id="L-2067"><a href="#L-2067"><span class="linenos">2067</span></a> <span class="c1">#</span>
</span><span id="L-2068"><a href="#L-2068"><span class="linenos">2068</span></a> <span class="c1"># Form: alias selection</span>
</span><span id="L-2069"><a href="#L-2069"><span class="linenos">2069</span></a> <span class="c1"># create [POST_CREATE]</span>
</span><span id="L-2070"><a href="#L-2070"><span class="linenos">2070</span></a> <span class="c1"># table a [POST_NAME]</span>
</span><span id="L-2071"><a href="#L-2071"><span class="linenos">2071</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
</span><span id="L-2072"><a href="#L-2072"><span class="linenos">2072</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
</span><span id="L-2073"><a href="#L-2073"><span class="linenos">2073</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
</span><span id="L-2074"><a href="#L-2074"><span class="linenos">2074</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-2075"><a href="#L-2075"><span class="linenos">2075</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-2076"><a href="#L-2076"><span class="linenos">2076</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-2077"><a href="#L-2077"><span class="linenos">2077</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-2078"><a href="#L-2078"><span class="linenos">2078</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-2079"><a href="#L-2079"><span class="linenos">2079</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-2080"><a href="#L-2080"><span class="linenos">2080</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-2081"><a href="#L-2081"><span class="linenos">2081</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-2082"><a href="#L-2082"><span class="linenos">2082</span></a>
</span><span id="L-2083"><a href="#L-2083"><span class="linenos">2083</span></a> <span class="nd">@classmethod</span>
</span><span id="L-2084"><a href="#L-2084"><span class="linenos">2084</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
</span><span id="L-2085"><a href="#L-2085"><span class="linenos">2085</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-2086"><a href="#L-2086"><span class="linenos">2086</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="L-2087"><a href="#L-2087"><span class="linenos">2087</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
</span><span id="L-2088"><a href="#L-2088"><span class="linenos">2088</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
</span><span id="L-2089"><a href="#L-2089"><span class="linenos">2089</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
</span><span id="L-2090"><a href="#L-2090"><span class="linenos">2090</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-2091"><a href="#L-2091"><span class="linenos">2091</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
</span><span id="L-2092"><a href="#L-2092"><span class="linenos">2092</span></a>
</span><span id="L-2093"><a href="#L-2093"><span class="linenos">2093</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span>
</span><span id="L-2094"><a href="#L-2094"><span class="linenos">2094</span></a>
</span><span id="L-2095"><a href="#L-2095"><span class="linenos">2095</span></a>
</span><span id="L-2096"><a href="#L-2096"><span class="linenos">2096</span></a><span class="k">class</span> <span class="nc">Qualify</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-2097"><a href="#L-2097"><span class="linenos">2097</span></a> <span class="k">pass</span>
</span><span id="L-2098"><a href="#L-2098"><span class="linenos">2098</span></a>
</span><span id="L-2099"><a href="#L-2099"><span class="linenos">2099</span></a>
</span><span id="L-2100"><a href="#L-2100"><span class="linenos">2100</span></a><span class="c1"># https://www.ibm.com/docs/en/ias?topic=procedures-return-statement-in-sql</span>
</span><span id="L-2101"><a href="#L-2101"><span class="linenos">2101</span></a><span class="k">class</span> <span class="nc">Return</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-2102"><a href="#L-2102"><span class="linenos">2102</span></a> <span class="k">pass</span>
</span><span id="L-2103"><a href="#L-2103"><span class="linenos">2103</span></a>
</span><span id="L-2104"><a href="#L-2104"><span class="linenos">2104</span></a>
</span><span id="L-2105"><a href="#L-2105"><span class="linenos">2105</span></a><span class="k">class</span> <span class="nc">Reference</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-2106"><a href="#L-2106"><span class="linenos">2106</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2107"><a href="#L-2107"><span class="linenos">2107</span></a>
</span><span id="L-2108"><a href="#L-2108"><span class="linenos">2108</span></a>
</span><span id="L-2109"><a href="#L-2109"><span class="linenos">2109</span></a><span class="k">class</span> <span class="nc">Tuple</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-2110"><a href="#L-2110"><span class="linenos">2110</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2111"><a href="#L-2111"><span class="linenos">2111</span></a>
</span><span id="L-2112"><a href="#L-2112"><span class="linenos">2112</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
</span><span id="L-2113"><a href="#L-2113"><span class="linenos">2113</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-2114"><a href="#L-2114"><span class="linenos">2114</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
</span><span id="L-2115"><a href="#L-2115"><span class="linenos">2115</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
</span><span id="L-2116"><a href="#L-2116"><span class="linenos">2116</span></a> <span class="n">this</span><span class="o">=</span><span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
</span><span id="L-2117"><a href="#L-2117"><span class="linenos">2117</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
</span><span id="L-2118"><a href="#L-2118"><span class="linenos">2118</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2119"><a href="#L-2119"><span class="linenos">2119</span></a> <span class="p">)</span>
</span><span id="L-2120"><a href="#L-2120"><span class="linenos">2120</span></a>
</span><span id="L-2121"><a href="#L-2121"><span class="linenos">2121</span></a>
</span><span id="L-2122"><a href="#L-2122"><span class="linenos">2122</span></a><span class="k">class</span> <span class="nc">Subqueryable</span><span class="p">(</span><span class="n">Unionable</span><span class="p">):</span>
</span><span id="L-2123"><a href="#L-2123"><span class="linenos">2123</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
</span><span id="L-2124"><a href="#L-2124"><span class="linenos">2124</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2125"><a href="#L-2125"><span class="linenos">2125</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
</span><span id="L-2126"><a href="#L-2126"><span class="linenos">2126</span></a>
</span><span id="L-2127"><a href="#L-2127"><span class="linenos">2127</span></a><span class="sd"> Example:</span>
</span><span id="L-2128"><a href="#L-2128"><span class="linenos">2128</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
</span><span id="L-2129"><a href="#L-2129"><span class="linenos">2129</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
</span><span id="L-2130"><a href="#L-2130"><span class="linenos">2130</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
</span><span id="L-2131"><a href="#L-2131"><span class="linenos">2131</span></a>
</span><span id="L-2132"><a href="#L-2132"><span class="linenos">2132</span></a><span class="sd"> Args:</span>
</span><span id="L-2133"><a href="#L-2133"><span class="linenos">2133</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
</span><span id="L-2134"><a href="#L-2134"><span class="linenos">2134</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
</span><span id="L-2135"><a href="#L-2135"><span class="linenos">2135</span></a>
</span><span id="L-2136"><a href="#L-2136"><span class="linenos">2136</span></a><span class="sd"> Returns:</span>
</span><span id="L-2137"><a href="#L-2137"><span class="linenos">2137</span></a><span class="sd"> Alias: the subquery</span>
</span><span id="L-2138"><a href="#L-2138"><span class="linenos">2138</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2139"><a href="#L-2139"><span class="linenos">2139</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="L-2140"><a href="#L-2140"><span class="linenos">2140</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="L-2141"><a href="#L-2141"><span class="linenos">2141</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span>
</span><span id="L-2142"><a href="#L-2142"><span class="linenos">2142</span></a>
</span><span id="L-2143"><a href="#L-2143"><span class="linenos">2143</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
</span><span id="L-2144"><a href="#L-2144"><span class="linenos">2144</span></a>
</span><span id="L-2145"><a href="#L-2145"><span class="linenos">2145</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
</span><span id="L-2146"><a href="#L-2146"><span class="linenos">2146</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-2147"><a href="#L-2147"><span class="linenos">2147</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2148"><a href="#L-2148"><span class="linenos">2148</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
</span><span id="L-2149"><a href="#L-2149"><span class="linenos">2149</span></a>
</span><span id="L-2150"><a href="#L-2150"><span class="linenos">2150</span></a> <span class="nd">@property</span>
</span><span id="L-2151"><a href="#L-2151"><span class="linenos">2151</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-2152"><a href="#L-2152"><span class="linenos">2152</span></a> <span class="n">with_</span> <span class="o">=</span> <span class="bp">self</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;with&quot;</span><span class="p">)</span>
</span><span id="L-2153"><a href="#L-2153"><span class="linenos">2153</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">with_</span><span class="p">:</span>
</span><span id="L-2154"><a href="#L-2154"><span class="linenos">2154</span></a> <span class="k">return</span> <span class="p">[]</span>
</span><span id="L-2155"><a href="#L-2155"><span class="linenos">2155</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span>
</span><span id="L-2156"><a href="#L-2156"><span class="linenos">2156</span></a>
</span><span id="L-2157"><a href="#L-2157"><span class="linenos">2157</span></a> <span class="nd">@property</span>
</span><span id="L-2158"><a href="#L-2158"><span class="linenos">2158</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-2159"><a href="#L-2159"><span class="linenos">2159</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `selects`&quot;</span><span class="p">)</span>
</span><span id="L-2160"><a href="#L-2160"><span class="linenos">2160</span></a>
</span><span id="L-2161"><a href="#L-2161"><span class="linenos">2161</span></a> <span class="nd">@property</span>
</span><span id="L-2162"><a href="#L-2162"><span class="linenos">2162</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-2163"><a href="#L-2163"><span class="linenos">2163</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `named_selects`&quot;</span><span class="p">)</span>
</span><span id="L-2164"><a href="#L-2164"><span class="linenos">2164</span></a>
</span><span id="L-2165"><a href="#L-2165"><span class="linenos">2165</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
</span><span id="L-2166"><a href="#L-2166"><span class="linenos">2166</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2167"><a href="#L-2167"><span class="linenos">2167</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-2168"><a href="#L-2168"><span class="linenos">2168</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-2169"><a href="#L-2169"><span class="linenos">2169</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2170"><a href="#L-2170"><span class="linenos">2170</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2171"><a href="#L-2171"><span class="linenos">2171</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2172"><a href="#L-2172"><span class="linenos">2172</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2173"><a href="#L-2173"><span class="linenos">2173</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2174"><a href="#L-2174"><span class="linenos">2174</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
</span><span id="L-2175"><a href="#L-2175"><span class="linenos">2175</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2176"><a href="#L-2176"><span class="linenos">2176</span></a><span class="sd"> Append to or set the common table expressions.</span>
</span><span id="L-2177"><a href="#L-2177"><span class="linenos">2177</span></a>
</span><span id="L-2178"><a href="#L-2178"><span class="linenos">2178</span></a><span class="sd"> Example:</span>
</span><span id="L-2179"><a href="#L-2179"><span class="linenos">2179</span></a><span class="sd"> &gt;&gt;&gt; Select().with_(&quot;tbl2&quot;, as_=&quot;SELECT * FROM tbl&quot;).select(&quot;x&quot;).from_(&quot;tbl2&quot;).sql()</span>
</span><span id="L-2180"><a href="#L-2180"><span class="linenos">2180</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
</span><span id="L-2181"><a href="#L-2181"><span class="linenos">2181</span></a>
</span><span id="L-2182"><a href="#L-2182"><span class="linenos">2182</span></a><span class="sd"> Args:</span>
</span><span id="L-2183"><a href="#L-2183"><span class="linenos">2183</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
</span><span id="L-2184"><a href="#L-2184"><span class="linenos">2184</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
</span><span id="L-2185"><a href="#L-2185"><span class="linenos">2185</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
</span><span id="L-2186"><a href="#L-2186"><span class="linenos">2186</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-2187"><a href="#L-2187"><span class="linenos">2187</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
</span><span id="L-2188"><a href="#L-2188"><span class="linenos">2188</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="L-2189"><a href="#L-2189"><span class="linenos">2189</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="L-2190"><a href="#L-2190"><span class="linenos">2190</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-2191"><a href="#L-2191"><span class="linenos">2191</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2192"><a href="#L-2192"><span class="linenos">2192</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2193"><a href="#L-2193"><span class="linenos">2193</span></a>
</span><span id="L-2194"><a href="#L-2194"><span class="linenos">2194</span></a><span class="sd"> Returns:</span>
</span><span id="L-2195"><a href="#L-2195"><span class="linenos">2195</span></a><span class="sd"> The modified expression.</span>
</span><span id="L-2196"><a href="#L-2196"><span class="linenos">2196</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2197"><a href="#L-2197"><span class="linenos">2197</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
</span><span id="L-2198"><a href="#L-2198"><span class="linenos">2198</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-2199"><a href="#L-2199"><span class="linenos">2199</span></a> <span class="p">)</span>
</span><span id="L-2200"><a href="#L-2200"><span class="linenos">2200</span></a>
</span><span id="L-2201"><a href="#L-2201"><span class="linenos">2201</span></a>
</span><span id="L-2202"><a href="#L-2202"><span class="linenos">2202</span></a><span class="n">QUERY_MODIFIERS</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-2203"><a href="#L-2203"><span class="linenos">2203</span></a> <span class="s2">&quot;match&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2204"><a href="#L-2204"><span class="linenos">2204</span></a> <span class="s2">&quot;laterals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2205"><a href="#L-2205"><span class="linenos">2205</span></a> <span class="s2">&quot;joins&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2206"><a href="#L-2206"><span class="linenos">2206</span></a> <span class="s2">&quot;pivots&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2207"><a href="#L-2207"><span class="linenos">2207</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2208"><a href="#L-2208"><span class="linenos">2208</span></a> <span class="s2">&quot;group&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2209"><a href="#L-2209"><span class="linenos">2209</span></a> <span class="s2">&quot;having&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2210"><a href="#L-2210"><span class="linenos">2210</span></a> <span class="s2">&quot;qualify&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2211"><a href="#L-2211"><span class="linenos">2211</span></a> <span class="s2">&quot;windows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2212"><a href="#L-2212"><span class="linenos">2212</span></a> <span class="s2">&quot;distribute&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2213"><a href="#L-2213"><span class="linenos">2213</span></a> <span class="s2">&quot;sort&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2214"><a href="#L-2214"><span class="linenos">2214</span></a> <span class="s2">&quot;cluster&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2215"><a href="#L-2215"><span class="linenos">2215</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2216"><a href="#L-2216"><span class="linenos">2216</span></a> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2217"><a href="#L-2217"><span class="linenos">2217</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2218"><a href="#L-2218"><span class="linenos">2218</span></a> <span class="s2">&quot;locks&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2219"><a href="#L-2219"><span class="linenos">2219</span></a> <span class="s2">&quot;sample&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2220"><a href="#L-2220"><span class="linenos">2220</span></a> <span class="s2">&quot;settings&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2221"><a href="#L-2221"><span class="linenos">2221</span></a> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2222"><a href="#L-2222"><span class="linenos">2222</span></a><span class="p">}</span>
</span><span id="L-2223"><a href="#L-2223"><span class="linenos">2223</span></a>
</span><span id="L-2224"><a href="#L-2224"><span class="linenos">2224</span></a>
</span><span id="L-2225"><a href="#L-2225"><span class="linenos">2225</span></a><span class="k">class</span> <span class="nc">Table</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-2226"><a href="#L-2226"><span class="linenos">2226</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-2227"><a href="#L-2227"><span class="linenos">2227</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2228"><a href="#L-2228"><span class="linenos">2228</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2229"><a href="#L-2229"><span class="linenos">2229</span></a> <span class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2230"><a href="#L-2230"><span class="linenos">2230</span></a> <span class="s2">&quot;catalog&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2231"><a href="#L-2231"><span class="linenos">2231</span></a> <span class="s2">&quot;laterals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2232"><a href="#L-2232"><span class="linenos">2232</span></a> <span class="s2">&quot;joins&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2233"><a href="#L-2233"><span class="linenos">2233</span></a> <span class="s2">&quot;pivots&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2234"><a href="#L-2234"><span class="linenos">2234</span></a> <span class="s2">&quot;hints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2235"><a href="#L-2235"><span class="linenos">2235</span></a> <span class="s2">&quot;system_time&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2236"><a href="#L-2236"><span class="linenos">2236</span></a> <span class="p">}</span>
</span><span id="L-2237"><a href="#L-2237"><span class="linenos">2237</span></a>
</span><span id="L-2238"><a href="#L-2238"><span class="linenos">2238</span></a> <span class="nd">@property</span>
</span><span id="L-2239"><a href="#L-2239"><span class="linenos">2239</span></a> <span class="k">def</span> <span class="nf">db</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-2240"><a href="#L-2240"><span class="linenos">2240</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">)</span>
</span><span id="L-2241"><a href="#L-2241"><span class="linenos">2241</span></a>
</span><span id="L-2242"><a href="#L-2242"><span class="linenos">2242</span></a> <span class="nd">@property</span>
</span><span id="L-2243"><a href="#L-2243"><span class="linenos">2243</span></a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-2244"><a href="#L-2244"><span class="linenos">2244</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">)</span>
</span><span id="L-2245"><a href="#L-2245"><span class="linenos">2245</span></a>
</span><span id="L-2246"><a href="#L-2246"><span class="linenos">2246</span></a> <span class="nd">@property</span>
</span><span id="L-2247"><a href="#L-2247"><span class="linenos">2247</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Identifier</span><span class="p">]:</span>
</span><span id="L-2248"><a href="#L-2248"><span class="linenos">2248</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table in order catalog, db, table.&quot;&quot;&quot;</span>
</span><span id="L-2249"><a href="#L-2249"><span class="linenos">2249</span></a> <span class="k">return</span> <span class="p">[</span>
</span><span id="L-2250"><a href="#L-2250"><span class="linenos">2250</span></a> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">part</span><span class="p">])</span>
</span><span id="L-2251"><a href="#L-2251"><span class="linenos">2251</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
</span><span id="L-2252"><a href="#L-2252"><span class="linenos">2252</span></a> <span class="k">if</span> <span class="bp">self</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="n">part</span><span class="p">)</span>
</span><span id="L-2253"><a href="#L-2253"><span class="linenos">2253</span></a> <span class="p">]</span>
</span><span id="L-2254"><a href="#L-2254"><span class="linenos">2254</span></a>
</span><span id="L-2255"><a href="#L-2255"><span class="linenos">2255</span></a>
</span><span id="L-2256"><a href="#L-2256"><span class="linenos">2256</span></a><span class="c1"># See the TSQL &quot;Querying data in a system-versioned temporal table&quot; page</span>
</span><span id="L-2257"><a href="#L-2257"><span class="linenos">2257</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-2258"><a href="#L-2258"><span class="linenos">2258</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-2259"><a href="#L-2259"><span class="linenos">2259</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2260"><a href="#L-2260"><span class="linenos">2260</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2261"><a href="#L-2261"><span class="linenos">2261</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2262"><a href="#L-2262"><span class="linenos">2262</span></a> <span class="p">}</span>
</span><span id="L-2263"><a href="#L-2263"><span class="linenos">2263</span></a>
</span><span id="L-2264"><a href="#L-2264"><span class="linenos">2264</span></a>
</span><span id="L-2265"><a href="#L-2265"><span class="linenos">2265</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
</span><span id="L-2266"><a href="#L-2266"><span class="linenos">2266</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-2267"><a href="#L-2267"><span class="linenos">2267</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2268"><a href="#L-2268"><span class="linenos">2268</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2269"><a href="#L-2269"><span class="linenos">2269</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2270"><a href="#L-2270"><span class="linenos">2270</span></a> <span class="s2">&quot;distinct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2271"><a href="#L-2271"><span class="linenos">2271</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
</span><span id="L-2272"><a href="#L-2272"><span class="linenos">2272</span></a> <span class="p">}</span>
</span><span id="L-2273"><a href="#L-2273"><span class="linenos">2273</span></a>
</span><span id="L-2274"><a href="#L-2274"><span class="linenos">2274</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
</span><span id="L-2275"><a href="#L-2275"><span class="linenos">2275</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-2276"><a href="#L-2276"><span class="linenos">2276</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2277"><a href="#L-2277"><span class="linenos">2277</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2278"><a href="#L-2278"><span class="linenos">2278</span></a><span class="sd"> Set the LIMIT expression.</span>
</span><span id="L-2279"><a href="#L-2279"><span class="linenos">2279</span></a>
</span><span id="L-2280"><a href="#L-2280"><span class="linenos">2280</span></a><span class="sd"> Example:</span>
</span><span id="L-2281"><a href="#L-2281"><span class="linenos">2281</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;1&quot;).union(select(&quot;1&quot;)).limit(1).sql()</span>
</span><span id="L-2282"><a href="#L-2282"><span class="linenos">2282</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
</span><span id="L-2283"><a href="#L-2283"><span class="linenos">2283</span></a>
</span><span id="L-2284"><a href="#L-2284"><span class="linenos">2284</span></a><span class="sd"> Args:</span>
</span><span id="L-2285"><a href="#L-2285"><span class="linenos">2285</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="L-2286"><a href="#L-2286"><span class="linenos">2286</span></a><span class="sd"> This can also be an integer.</span>
</span><span id="L-2287"><a href="#L-2287"><span class="linenos">2287</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
</span><span id="L-2288"><a href="#L-2288"><span class="linenos">2288</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
</span><span id="L-2289"><a href="#L-2289"><span class="linenos">2289</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-2290"><a href="#L-2290"><span class="linenos">2290</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2291"><a href="#L-2291"><span class="linenos">2291</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2292"><a href="#L-2292"><span class="linenos">2292</span></a>
</span><span id="L-2293"><a href="#L-2293"><span class="linenos">2293</span></a><span class="sd"> Returns:</span>
</span><span id="L-2294"><a href="#L-2294"><span class="linenos">2294</span></a><span class="sd"> The limited subqueryable.</span>
</span><span id="L-2295"><a href="#L-2295"><span class="linenos">2295</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2296"><a href="#L-2296"><span class="linenos">2296</span></a> <span class="k">return</span> <span class="p">(</span>
</span><span id="L-2297"><a href="#L-2297"><span class="linenos">2297</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">)</span>
</span><span id="L-2298"><a href="#L-2298"><span class="linenos">2298</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">&quot;_l_0&quot;</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
</span><span id="L-2299"><a href="#L-2299"><span class="linenos">2299</span></a> <span class="o">.</span><span class="n">limit</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-2300"><a href="#L-2300"><span class="linenos">2300</span></a> <span class="p">)</span>
</span><span id="L-2301"><a href="#L-2301"><span class="linenos">2301</span></a>
</span><span id="L-2302"><a href="#L-2302"><span class="linenos">2302</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
</span><span id="L-2303"><a href="#L-2303"><span class="linenos">2303</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2304"><a href="#L-2304"><span class="linenos">2304</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-2305"><a href="#L-2305"><span class="linenos">2305</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2306"><a href="#L-2306"><span class="linenos">2306</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2307"><a href="#L-2307"><span class="linenos">2307</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2308"><a href="#L-2308"><span class="linenos">2308</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2309"><a href="#L-2309"><span class="linenos">2309</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
</span><span id="L-2310"><a href="#L-2310"><span class="linenos">2310</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Append to or set the SELECT of the union recursively.</span>
</span><span id="L-2311"><a href="#L-2311"><span class="linenos">2311</span></a>
</span><span id="L-2312"><a href="#L-2312"><span class="linenos">2312</span></a><span class="sd"> Example:</span>
</span><span id="L-2313"><a href="#L-2313"><span class="linenos">2313</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
</span><span id="L-2314"><a href="#L-2314"><span class="linenos">2314</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;select a from x union select a from y union select a from z&quot;).select(&quot;b&quot;).sql()</span>
</span><span id="L-2315"><a href="#L-2315"><span class="linenos">2315</span></a><span class="sd"> &#39;SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z&#39;</span>
</span><span id="L-2316"><a href="#L-2316"><span class="linenos">2316</span></a>
</span><span id="L-2317"><a href="#L-2317"><span class="linenos">2317</span></a><span class="sd"> Args:</span>
</span><span id="L-2318"><a href="#L-2318"><span class="linenos">2318</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-2319"><a href="#L-2319"><span class="linenos">2319</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-2320"><a href="#L-2320"><span class="linenos">2320</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="L-2321"><a href="#L-2321"><span class="linenos">2321</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="L-2322"><a href="#L-2322"><span class="linenos">2322</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="L-2323"><a href="#L-2323"><span class="linenos">2323</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2324"><a href="#L-2324"><span class="linenos">2324</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2325"><a href="#L-2325"><span class="linenos">2325</span></a>
</span><span id="L-2326"><a href="#L-2326"><span class="linenos">2326</span></a><span class="sd"> Returns:</span>
</span><span id="L-2327"><a href="#L-2327"><span class="linenos">2327</span></a><span class="sd"> Union: the modified expression.</span>
</span><span id="L-2328"><a href="#L-2328"><span class="linenos">2328</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2329"><a href="#L-2329"><span class="linenos">2329</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
</span><span id="L-2330"><a href="#L-2330"><span class="linenos">2330</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-2331"><a href="#L-2331"><span class="linenos">2331</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span>
</span><span id="L-2332"><a href="#L-2332"><span class="linenos">2332</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-2333"><a href="#L-2333"><span class="linenos">2333</span></a> <span class="p">)</span>
</span><span id="L-2334"><a href="#L-2334"><span class="linenos">2334</span></a> <span class="k">return</span> <span class="n">this</span>
</span><span id="L-2335"><a href="#L-2335"><span class="linenos">2335</span></a>
</span><span id="L-2336"><a href="#L-2336"><span class="linenos">2336</span></a> <span class="nd">@property</span>
</span><span id="L-2337"><a href="#L-2337"><span class="linenos">2337</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-2338"><a href="#L-2338"><span class="linenos">2338</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">named_selects</span>
</span><span id="L-2339"><a href="#L-2339"><span class="linenos">2339</span></a>
</span><span id="L-2340"><a href="#L-2340"><span class="linenos">2340</span></a> <span class="nd">@property</span>
</span><span id="L-2341"><a href="#L-2341"><span class="linenos">2341</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-2342"><a href="#L-2342"><span class="linenos">2342</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span>
</span><span id="L-2343"><a href="#L-2343"><span class="linenos">2343</span></a>
</span><span id="L-2344"><a href="#L-2344"><span class="linenos">2344</span></a> <span class="nd">@property</span>
</span><span id="L-2345"><a href="#L-2345"><span class="linenos">2345</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-2346"><a href="#L-2346"><span class="linenos">2346</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
</span><span id="L-2347"><a href="#L-2347"><span class="linenos">2347</span></a>
</span><span id="L-2348"><a href="#L-2348"><span class="linenos">2348</span></a> <span class="nd">@property</span>
</span><span id="L-2349"><a href="#L-2349"><span class="linenos">2349</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-2350"><a href="#L-2350"><span class="linenos">2350</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
</span><span id="L-2351"><a href="#L-2351"><span class="linenos">2351</span></a>
</span><span id="L-2352"><a href="#L-2352"><span class="linenos">2352</span></a> <span class="nd">@property</span>
</span><span id="L-2353"><a href="#L-2353"><span class="linenos">2353</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-2354"><a href="#L-2354"><span class="linenos">2354</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span><span id="L-2355"><a href="#L-2355"><span class="linenos">2355</span></a>
</span><span id="L-2356"><a href="#L-2356"><span class="linenos">2356</span></a>
</span><span id="L-2357"><a href="#L-2357"><span class="linenos">2357</span></a><span class="k">class</span> <span class="nc">Except</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
</span><span id="L-2358"><a href="#L-2358"><span class="linenos">2358</span></a> <span class="k">pass</span>
</span><span id="L-2359"><a href="#L-2359"><span class="linenos">2359</span></a>
</span><span id="L-2360"><a href="#L-2360"><span class="linenos">2360</span></a>
</span><span id="L-2361"><a href="#L-2361"><span class="linenos">2361</span></a><span class="k">class</span> <span class="nc">Intersect</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
</span><span id="L-2362"><a href="#L-2362"><span class="linenos">2362</span></a> <span class="k">pass</span>
</span><span id="L-2363"><a href="#L-2363"><span class="linenos">2363</span></a>
</span><span id="L-2364"><a href="#L-2364"><span class="linenos">2364</span></a>
</span><span id="L-2365"><a href="#L-2365"><span class="linenos">2365</span></a><span class="k">class</span> <span class="nc">Unnest</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
</span><span id="L-2366"><a href="#L-2366"><span class="linenos">2366</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-2367"><a href="#L-2367"><span class="linenos">2367</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2368"><a href="#L-2368"><span class="linenos">2368</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2369"><a href="#L-2369"><span class="linenos">2369</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2370"><a href="#L-2370"><span class="linenos">2370</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2371"><a href="#L-2371"><span class="linenos">2371</span></a> <span class="p">}</span>
</span><span id="L-2372"><a href="#L-2372"><span class="linenos">2372</span></a>
</span><span id="L-2373"><a href="#L-2373"><span class="linenos">2373</span></a>
</span><span id="L-2374"><a href="#L-2374"><span class="linenos">2374</span></a><span class="k">class</span> <span class="nc">Update</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-2375"><a href="#L-2375"><span class="linenos">2375</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-2376"><a href="#L-2376"><span class="linenos">2376</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2377"><a href="#L-2377"><span class="linenos">2377</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2378"><a href="#L-2378"><span class="linenos">2378</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2379"><a href="#L-2379"><span class="linenos">2379</span></a> <span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2380"><a href="#L-2380"><span class="linenos">2380</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2381"><a href="#L-2381"><span class="linenos">2381</span></a> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2382"><a href="#L-2382"><span class="linenos">2382</span></a> <span class="p">}</span>
</span><span id="L-2383"><a href="#L-2383"><span class="linenos">2383</span></a>
</span><span id="L-2384"><a href="#L-2384"><span class="linenos">2384</span></a>
</span><span id="L-2385"><a href="#L-2385"><span class="linenos">2385</span></a><span class="k">class</span> <span class="nc">Values</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
</span><span id="L-2386"><a href="#L-2386"><span class="linenos">2386</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-2387"><a href="#L-2387"><span class="linenos">2387</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2388"><a href="#L-2388"><span class="linenos">2388</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2389"><a href="#L-2389"><span class="linenos">2389</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2390"><a href="#L-2390"><span class="linenos">2390</span></a> <span class="p">}</span>
</span><span id="L-2391"><a href="#L-2391"><span class="linenos">2391</span></a>
</span><span id="L-2392"><a href="#L-2392"><span class="linenos">2392</span></a>
</span><span id="L-2393"><a href="#L-2393"><span class="linenos">2393</span></a><span class="k">class</span> <span class="nc">Var</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-2394"><a href="#L-2394"><span class="linenos">2394</span></a> <span class="k">pass</span>
</span><span id="L-2395"><a href="#L-2395"><span class="linenos">2395</span></a>
</span><span id="L-2396"><a href="#L-2396"><span class="linenos">2396</span></a>
</span><span id="L-2397"><a href="#L-2397"><span class="linenos">2397</span></a><span class="k">class</span> <span class="nc">Schema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-2398"><a href="#L-2398"><span class="linenos">2398</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2399"><a href="#L-2399"><span class="linenos">2399</span></a>
</span><span id="L-2400"><a href="#L-2400"><span class="linenos">2400</span></a>
</span><span id="L-2401"><a href="#L-2401"><span class="linenos">2401</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/select.html</span>
</span><span id="L-2402"><a href="#L-2402"><span class="linenos">2402</span></a><span class="c1"># https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html</span>
</span><span id="L-2403"><a href="#L-2403"><span class="linenos">2403</span></a><span class="k">class</span> <span class="nc">Lock</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-2404"><a href="#L-2404"><span class="linenos">2404</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;wait&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-2405"><a href="#L-2405"><span class="linenos">2405</span></a>
</span><span id="L-2406"><a href="#L-2406"><span class="linenos">2406</span></a>
</span><span id="L-2407"><a href="#L-2407"><span class="linenos">2407</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
</span><span id="L-2408"><a href="#L-2408"><span class="linenos">2408</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-2409"><a href="#L-2409"><span class="linenos">2409</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2410"><a href="#L-2410"><span class="linenos">2410</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2411"><a href="#L-2411"><span class="linenos">2411</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2412"><a href="#L-2412"><span class="linenos">2412</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2413"><a href="#L-2413"><span class="linenos">2413</span></a> <span class="s2">&quot;distinct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2414"><a href="#L-2414"><span class="linenos">2414</span></a> <span class="s2">&quot;struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#return_query_results_as_a_value_table</span>
</span><span id="L-2415"><a href="#L-2415"><span class="linenos">2415</span></a> <span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2416"><a href="#L-2416"><span class="linenos">2416</span></a> <span class="s2">&quot;into&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2417"><a href="#L-2417"><span class="linenos">2417</span></a> <span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-2418"><a href="#L-2418"><span class="linenos">2418</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
</span><span id="L-2419"><a href="#L-2419"><span class="linenos">2419</span></a> <span class="p">}</span>
</span><span id="L-2420"><a href="#L-2420"><span class="linenos">2420</span></a>
</span><span id="L-2421"><a href="#L-2421"><span class="linenos">2421</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
</span><span id="L-2422"><a href="#L-2422"><span class="linenos">2422</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-2423"><a href="#L-2423"><span class="linenos">2423</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2424"><a href="#L-2424"><span class="linenos">2424</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2425"><a href="#L-2425"><span class="linenos">2425</span></a><span class="sd"> Set the FROM expression.</span>
</span><span id="L-2426"><a href="#L-2426"><span class="linenos">2426</span></a>
</span><span id="L-2427"><a href="#L-2427"><span class="linenos">2427</span></a><span class="sd"> Example:</span>
</span><span id="L-2428"><a href="#L-2428"><span class="linenos">2428</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
</span><span id="L-2429"><a href="#L-2429"><span class="linenos">2429</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
</span><span id="L-2430"><a href="#L-2430"><span class="linenos">2430</span></a>
</span><span id="L-2431"><a href="#L-2431"><span class="linenos">2431</span></a><span class="sd"> Args:</span>
</span><span id="L-2432"><a href="#L-2432"><span class="linenos">2432</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
</span><span id="L-2433"><a href="#L-2433"><span class="linenos">2433</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
</span><span id="L-2434"><a href="#L-2434"><span class="linenos">2434</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
</span><span id="L-2435"><a href="#L-2435"><span class="linenos">2435</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-2436"><a href="#L-2436"><span class="linenos">2436</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2437"><a href="#L-2437"><span class="linenos">2437</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2438"><a href="#L-2438"><span class="linenos">2438</span></a>
</span><span id="L-2439"><a href="#L-2439"><span class="linenos">2439</span></a><span class="sd"> Returns:</span>
</span><span id="L-2440"><a href="#L-2440"><span class="linenos">2440</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="L-2441"><a href="#L-2441"><span class="linenos">2441</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2442"><a href="#L-2442"><span class="linenos">2442</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="L-2443"><a href="#L-2443"><span class="linenos">2443</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="L-2444"><a href="#L-2444"><span class="linenos">2444</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2445"><a href="#L-2445"><span class="linenos">2445</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;from&quot;</span><span class="p">,</span>
</span><span id="L-2446"><a href="#L-2446"><span class="linenos">2446</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
</span><span id="L-2447"><a href="#L-2447"><span class="linenos">2447</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span>
</span><span id="L-2448"><a href="#L-2448"><span class="linenos">2448</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2449"><a href="#L-2449"><span class="linenos">2449</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2450"><a href="#L-2450"><span class="linenos">2450</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2451"><a href="#L-2451"><span class="linenos">2451</span></a> <span class="p">)</span>
</span><span id="L-2452"><a href="#L-2452"><span class="linenos">2452</span></a>
</span><span id="L-2453"><a href="#L-2453"><span class="linenos">2453</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
</span><span id="L-2454"><a href="#L-2454"><span class="linenos">2454</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2455"><a href="#L-2455"><span class="linenos">2455</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-2456"><a href="#L-2456"><span class="linenos">2456</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2457"><a href="#L-2457"><span class="linenos">2457</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2458"><a href="#L-2458"><span class="linenos">2458</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2459"><a href="#L-2459"><span class="linenos">2459</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2460"><a href="#L-2460"><span class="linenos">2460</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2461"><a href="#L-2461"><span class="linenos">2461</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2462"><a href="#L-2462"><span class="linenos">2462</span></a><span class="sd"> Set the GROUP BY expression.</span>
</span><span id="L-2463"><a href="#L-2463"><span class="linenos">2463</span></a>
</span><span id="L-2464"><a href="#L-2464"><span class="linenos">2464</span></a><span class="sd"> Example:</span>
</span><span id="L-2465"><a href="#L-2465"><span class="linenos">2465</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;, &quot;COUNT(1)&quot;).group_by(&quot;x&quot;).sql()</span>
</span><span id="L-2466"><a href="#L-2466"><span class="linenos">2466</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
</span><span id="L-2467"><a href="#L-2467"><span class="linenos">2467</span></a>
</span><span id="L-2468"><a href="#L-2468"><span class="linenos">2468</span></a><span class="sd"> Args:</span>
</span><span id="L-2469"><a href="#L-2469"><span class="linenos">2469</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-2470"><a href="#L-2470"><span class="linenos">2470</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
</span><span id="L-2471"><a href="#L-2471"><span class="linenos">2471</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
</span><span id="L-2472"><a href="#L-2472"><span class="linenos">2472</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span>
</span><span id="L-2473"><a href="#L-2473"><span class="linenos">2473</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="L-2474"><a href="#L-2474"><span class="linenos">2474</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
</span><span id="L-2475"><a href="#L-2475"><span class="linenos">2475</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-2476"><a href="#L-2476"><span class="linenos">2476</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2477"><a href="#L-2477"><span class="linenos">2477</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2478"><a href="#L-2478"><span class="linenos">2478</span></a>
</span><span id="L-2479"><a href="#L-2479"><span class="linenos">2479</span></a><span class="sd"> Returns:</span>
</span><span id="L-2480"><a href="#L-2480"><span class="linenos">2480</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="L-2481"><a href="#L-2481"><span class="linenos">2481</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2482"><a href="#L-2482"><span class="linenos">2482</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span>
</span><span id="L-2483"><a href="#L-2483"><span class="linenos">2483</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
</span><span id="L-2484"><a href="#L-2484"><span class="linenos">2484</span></a>
</span><span id="L-2485"><a href="#L-2485"><span class="linenos">2485</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="L-2486"><a href="#L-2486"><span class="linenos">2486</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-2487"><a href="#L-2487"><span class="linenos">2487</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2488"><a href="#L-2488"><span class="linenos">2488</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;group&quot;</span><span class="p">,</span>
</span><span id="L-2489"><a href="#L-2489"><span class="linenos">2489</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-2490"><a href="#L-2490"><span class="linenos">2490</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2491"><a href="#L-2491"><span class="linenos">2491</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;GROUP BY&quot;</span><span class="p">,</span>
</span><span id="L-2492"><a href="#L-2492"><span class="linenos">2492</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
</span><span id="L-2493"><a href="#L-2493"><span class="linenos">2493</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2494"><a href="#L-2494"><span class="linenos">2494</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2495"><a href="#L-2495"><span class="linenos">2495</span></a> <span class="p">)</span>
</span><span id="L-2496"><a href="#L-2496"><span class="linenos">2496</span></a>
</span><span id="L-2497"><a href="#L-2497"><span class="linenos">2497</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span>
</span><span id="L-2498"><a href="#L-2498"><span class="linenos">2498</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2499"><a href="#L-2499"><span class="linenos">2499</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-2500"><a href="#L-2500"><span class="linenos">2500</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2501"><a href="#L-2501"><span class="linenos">2501</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2502"><a href="#L-2502"><span class="linenos">2502</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2503"><a href="#L-2503"><span class="linenos">2503</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2504"><a href="#L-2504"><span class="linenos">2504</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2505"><a href="#L-2505"><span class="linenos">2505</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2506"><a href="#L-2506"><span class="linenos">2506</span></a><span class="sd"> Set the ORDER BY expression.</span>
</span><span id="L-2507"><a href="#L-2507"><span class="linenos">2507</span></a>
</span><span id="L-2508"><a href="#L-2508"><span class="linenos">2508</span></a><span class="sd"> Example:</span>
</span><span id="L-2509"><a href="#L-2509"><span class="linenos">2509</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).order_by(&quot;x DESC&quot;).sql()</span>
</span><span id="L-2510"><a href="#L-2510"><span class="linenos">2510</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
</span><span id="L-2511"><a href="#L-2511"><span class="linenos">2511</span></a>
</span><span id="L-2512"><a href="#L-2512"><span class="linenos">2512</span></a><span class="sd"> Args:</span>
</span><span id="L-2513"><a href="#L-2513"><span class="linenos">2513</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-2514"><a href="#L-2514"><span class="linenos">2514</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
</span><span id="L-2515"><a href="#L-2515"><span class="linenos">2515</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
</span><span id="L-2516"><a href="#L-2516"><span class="linenos">2516</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="L-2517"><a href="#L-2517"><span class="linenos">2517</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
</span><span id="L-2518"><a href="#L-2518"><span class="linenos">2518</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-2519"><a href="#L-2519"><span class="linenos">2519</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2520"><a href="#L-2520"><span class="linenos">2520</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2521"><a href="#L-2521"><span class="linenos">2521</span></a>
</span><span id="L-2522"><a href="#L-2522"><span class="linenos">2522</span></a><span class="sd"> Returns:</span>
</span><span id="L-2523"><a href="#L-2523"><span class="linenos">2523</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="L-2524"><a href="#L-2524"><span class="linenos">2524</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2525"><a href="#L-2525"><span class="linenos">2525</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="L-2526"><a href="#L-2526"><span class="linenos">2526</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-2527"><a href="#L-2527"><span class="linenos">2527</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2528"><a href="#L-2528"><span class="linenos">2528</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;order&quot;</span><span class="p">,</span>
</span><span id="L-2529"><a href="#L-2529"><span class="linenos">2529</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-2530"><a href="#L-2530"><span class="linenos">2530</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2531"><a href="#L-2531"><span class="linenos">2531</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;ORDER BY&quot;</span><span class="p">,</span>
</span><span id="L-2532"><a href="#L-2532"><span class="linenos">2532</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
</span><span id="L-2533"><a href="#L-2533"><span class="linenos">2533</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2534"><a href="#L-2534"><span class="linenos">2534</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2535"><a href="#L-2535"><span class="linenos">2535</span></a> <span class="p">)</span>
</span><span id="L-2536"><a href="#L-2536"><span class="linenos">2536</span></a>
</span><span id="L-2537"><a href="#L-2537"><span class="linenos">2537</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
</span><span id="L-2538"><a href="#L-2538"><span class="linenos">2538</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2539"><a href="#L-2539"><span class="linenos">2539</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-2540"><a href="#L-2540"><span class="linenos">2540</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2541"><a href="#L-2541"><span class="linenos">2541</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2542"><a href="#L-2542"><span class="linenos">2542</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2543"><a href="#L-2543"><span class="linenos">2543</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2544"><a href="#L-2544"><span class="linenos">2544</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2545"><a href="#L-2545"><span class="linenos">2545</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2546"><a href="#L-2546"><span class="linenos">2546</span></a><span class="sd"> Set the SORT BY expression.</span>
</span><span id="L-2547"><a href="#L-2547"><span class="linenos">2547</span></a>
</span><span id="L-2548"><a href="#L-2548"><span class="linenos">2548</span></a><span class="sd"> Example:</span>
</span><span id="L-2549"><a href="#L-2549"><span class="linenos">2549</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
</span><span id="L-2550"><a href="#L-2550"><span class="linenos">2550</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
</span><span id="L-2551"><a href="#L-2551"><span class="linenos">2551</span></a>
</span><span id="L-2552"><a href="#L-2552"><span class="linenos">2552</span></a><span class="sd"> Args:</span>
</span><span id="L-2553"><a href="#L-2553"><span class="linenos">2553</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-2554"><a href="#L-2554"><span class="linenos">2554</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
</span><span id="L-2555"><a href="#L-2555"><span class="linenos">2555</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
</span><span id="L-2556"><a href="#L-2556"><span class="linenos">2556</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="L-2557"><a href="#L-2557"><span class="linenos">2557</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
</span><span id="L-2558"><a href="#L-2558"><span class="linenos">2558</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-2559"><a href="#L-2559"><span class="linenos">2559</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2560"><a href="#L-2560"><span class="linenos">2560</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2561"><a href="#L-2561"><span class="linenos">2561</span></a>
</span><span id="L-2562"><a href="#L-2562"><span class="linenos">2562</span></a><span class="sd"> Returns:</span>
</span><span id="L-2563"><a href="#L-2563"><span class="linenos">2563</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="L-2564"><a href="#L-2564"><span class="linenos">2564</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2565"><a href="#L-2565"><span class="linenos">2565</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="L-2566"><a href="#L-2566"><span class="linenos">2566</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-2567"><a href="#L-2567"><span class="linenos">2567</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2568"><a href="#L-2568"><span class="linenos">2568</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;sort&quot;</span><span class="p">,</span>
</span><span id="L-2569"><a href="#L-2569"><span class="linenos">2569</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-2570"><a href="#L-2570"><span class="linenos">2570</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2571"><a href="#L-2571"><span class="linenos">2571</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;SORT BY&quot;</span><span class="p">,</span>
</span><span id="L-2572"><a href="#L-2572"><span class="linenos">2572</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
</span><span id="L-2573"><a href="#L-2573"><span class="linenos">2573</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2574"><a href="#L-2574"><span class="linenos">2574</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2575"><a href="#L-2575"><span class="linenos">2575</span></a> <span class="p">)</span>
</span><span id="L-2576"><a href="#L-2576"><span class="linenos">2576</span></a>
</span><span id="L-2577"><a href="#L-2577"><span class="linenos">2577</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
</span><span id="L-2578"><a href="#L-2578"><span class="linenos">2578</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2579"><a href="#L-2579"><span class="linenos">2579</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-2580"><a href="#L-2580"><span class="linenos">2580</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2581"><a href="#L-2581"><span class="linenos">2581</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2582"><a href="#L-2582"><span class="linenos">2582</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2583"><a href="#L-2583"><span class="linenos">2583</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2584"><a href="#L-2584"><span class="linenos">2584</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2585"><a href="#L-2585"><span class="linenos">2585</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2586"><a href="#L-2586"><span class="linenos">2586</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
</span><span id="L-2587"><a href="#L-2587"><span class="linenos">2587</span></a>
</span><span id="L-2588"><a href="#L-2588"><span class="linenos">2588</span></a><span class="sd"> Example:</span>
</span><span id="L-2589"><a href="#L-2589"><span class="linenos">2589</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
</span><span id="L-2590"><a href="#L-2590"><span class="linenos">2590</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
</span><span id="L-2591"><a href="#L-2591"><span class="linenos">2591</span></a>
</span><span id="L-2592"><a href="#L-2592"><span class="linenos">2592</span></a><span class="sd"> Args:</span>
</span><span id="L-2593"><a href="#L-2593"><span class="linenos">2593</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-2594"><a href="#L-2594"><span class="linenos">2594</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
</span><span id="L-2595"><a href="#L-2595"><span class="linenos">2595</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
</span><span id="L-2596"><a href="#L-2596"><span class="linenos">2596</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="L-2597"><a href="#L-2597"><span class="linenos">2597</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
</span><span id="L-2598"><a href="#L-2598"><span class="linenos">2598</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-2599"><a href="#L-2599"><span class="linenos">2599</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2600"><a href="#L-2600"><span class="linenos">2600</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2601"><a href="#L-2601"><span class="linenos">2601</span></a>
</span><span id="L-2602"><a href="#L-2602"><span class="linenos">2602</span></a><span class="sd"> Returns:</span>
</span><span id="L-2603"><a href="#L-2603"><span class="linenos">2603</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="L-2604"><a href="#L-2604"><span class="linenos">2604</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2605"><a href="#L-2605"><span class="linenos">2605</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="L-2606"><a href="#L-2606"><span class="linenos">2606</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-2607"><a href="#L-2607"><span class="linenos">2607</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2608"><a href="#L-2608"><span class="linenos">2608</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;cluster&quot;</span><span class="p">,</span>
</span><span id="L-2609"><a href="#L-2609"><span class="linenos">2609</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-2610"><a href="#L-2610"><span class="linenos">2610</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2611"><a href="#L-2611"><span class="linenos">2611</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;CLUSTER BY&quot;</span><span class="p">,</span>
</span><span id="L-2612"><a href="#L-2612"><span class="linenos">2612</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
</span><span id="L-2613"><a href="#L-2613"><span class="linenos">2613</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2614"><a href="#L-2614"><span class="linenos">2614</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2615"><a href="#L-2615"><span class="linenos">2615</span></a> <span class="p">)</span>
</span><span id="L-2616"><a href="#L-2616"><span class="linenos">2616</span></a>
</span><span id="L-2617"><a href="#L-2617"><span class="linenos">2617</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
</span><span id="L-2618"><a href="#L-2618"><span class="linenos">2618</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-2619"><a href="#L-2619"><span class="linenos">2619</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2620"><a href="#L-2620"><span class="linenos">2620</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2621"><a href="#L-2621"><span class="linenos">2621</span></a><span class="sd"> Set the LIMIT expression.</span>
</span><span id="L-2622"><a href="#L-2622"><span class="linenos">2622</span></a>
</span><span id="L-2623"><a href="#L-2623"><span class="linenos">2623</span></a><span class="sd"> Example:</span>
</span><span id="L-2624"><a href="#L-2624"><span class="linenos">2624</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).limit(10).sql()</span>
</span><span id="L-2625"><a href="#L-2625"><span class="linenos">2625</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
</span><span id="L-2626"><a href="#L-2626"><span class="linenos">2626</span></a>
</span><span id="L-2627"><a href="#L-2627"><span class="linenos">2627</span></a><span class="sd"> Args:</span>
</span><span id="L-2628"><a href="#L-2628"><span class="linenos">2628</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="L-2629"><a href="#L-2629"><span class="linenos">2629</span></a><span class="sd"> This can also be an integer.</span>
</span><span id="L-2630"><a href="#L-2630"><span class="linenos">2630</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
</span><span id="L-2631"><a href="#L-2631"><span class="linenos">2631</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
</span><span id="L-2632"><a href="#L-2632"><span class="linenos">2632</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-2633"><a href="#L-2633"><span class="linenos">2633</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2634"><a href="#L-2634"><span class="linenos">2634</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2635"><a href="#L-2635"><span class="linenos">2635</span></a>
</span><span id="L-2636"><a href="#L-2636"><span class="linenos">2636</span></a><span class="sd"> Returns:</span>
</span><span id="L-2637"><a href="#L-2637"><span class="linenos">2637</span></a><span class="sd"> Select: the modified expression.</span>
</span><span id="L-2638"><a href="#L-2638"><span class="linenos">2638</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2639"><a href="#L-2639"><span class="linenos">2639</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="L-2640"><a href="#L-2640"><span class="linenos">2640</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="L-2641"><a href="#L-2641"><span class="linenos">2641</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2642"><a href="#L-2642"><span class="linenos">2642</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;limit&quot;</span><span class="p">,</span>
</span><span id="L-2643"><a href="#L-2643"><span class="linenos">2643</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
</span><span id="L-2644"><a href="#L-2644"><span class="linenos">2644</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LIMIT&quot;</span><span class="p">,</span>
</span><span id="L-2645"><a href="#L-2645"><span class="linenos">2645</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2646"><a href="#L-2646"><span class="linenos">2646</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2647"><a href="#L-2647"><span class="linenos">2647</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2648"><a href="#L-2648"><span class="linenos">2648</span></a> <span class="p">)</span>
</span><span id="L-2649"><a href="#L-2649"><span class="linenos">2649</span></a>
</span><span id="L-2650"><a href="#L-2650"><span class="linenos">2650</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span>
</span><span id="L-2651"><a href="#L-2651"><span class="linenos">2651</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-2652"><a href="#L-2652"><span class="linenos">2652</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2653"><a href="#L-2653"><span class="linenos">2653</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2654"><a href="#L-2654"><span class="linenos">2654</span></a><span class="sd"> Set the OFFSET expression.</span>
</span><span id="L-2655"><a href="#L-2655"><span class="linenos">2655</span></a>
</span><span id="L-2656"><a href="#L-2656"><span class="linenos">2656</span></a><span class="sd"> Example:</span>
</span><span id="L-2657"><a href="#L-2657"><span class="linenos">2657</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).offset(10).sql()</span>
</span><span id="L-2658"><a href="#L-2658"><span class="linenos">2658</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
</span><span id="L-2659"><a href="#L-2659"><span class="linenos">2659</span></a>
</span><span id="L-2660"><a href="#L-2660"><span class="linenos">2660</span></a><span class="sd"> Args:</span>
</span><span id="L-2661"><a href="#L-2661"><span class="linenos">2661</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</span></a><span class="sd"> This can also be an integer.</span>
</span><span id="L-2663"><a href="#L-2663"><span class="linenos">2663</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
</span><span id="L-2664"><a href="#L-2664"><span class="linenos">2664</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
</span><span id="L-2665"><a href="#L-2665"><span class="linenos">2665</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-2666"><a href="#L-2666"><span class="linenos">2666</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2667"><a href="#L-2667"><span class="linenos">2667</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2668"><a href="#L-2668"><span class="linenos">2668</span></a>
</span><span id="L-2669"><a href="#L-2669"><span class="linenos">2669</span></a><span class="sd"> Returns:</span>
</span><span id="L-2670"><a href="#L-2670"><span class="linenos">2670</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="L-2671"><a href="#L-2671"><span class="linenos">2671</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2672"><a href="#L-2672"><span class="linenos">2672</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="L-2673"><a href="#L-2673"><span class="linenos">2673</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="L-2674"><a href="#L-2674"><span class="linenos">2674</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2675"><a href="#L-2675"><span class="linenos">2675</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;offset&quot;</span><span class="p">,</span>
</span><span id="L-2676"><a href="#L-2676"><span class="linenos">2676</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
</span><span id="L-2677"><a href="#L-2677"><span class="linenos">2677</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;OFFSET&quot;</span><span class="p">,</span>
</span><span id="L-2678"><a href="#L-2678"><span class="linenos">2678</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2679"><a href="#L-2679"><span class="linenos">2679</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2680"><a href="#L-2680"><span class="linenos">2680</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</span></a> <span class="p">)</span>
</span><span id="L-2682"><a href="#L-2682"><span class="linenos">2682</span></a>
</span><span id="L-2683"><a href="#L-2683"><span class="linenos">2683</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
</span><span id="L-2684"><a href="#L-2684"><span class="linenos">2684</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2685"><a href="#L-2685"><span class="linenos">2685</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-2686"><a href="#L-2686"><span class="linenos">2686</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2687"><a href="#L-2687"><span class="linenos">2687</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2688"><a href="#L-2688"><span class="linenos">2688</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2689"><a href="#L-2689"><span class="linenos">2689</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2690"><a href="#L-2690"><span class="linenos">2690</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2691"><a href="#L-2691"><span class="linenos">2691</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2692"><a href="#L-2692"><span class="linenos">2692</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
</span><span id="L-2693"><a href="#L-2693"><span class="linenos">2693</span></a>
</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</span></a><span class="sd"> Example:</span>
</span><span id="L-2695"><a href="#L-2695"><span class="linenos">2695</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
</span><span id="L-2696"><a href="#L-2696"><span class="linenos">2696</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
</span><span id="L-2697"><a href="#L-2697"><span class="linenos">2697</span></a>
</span><span id="L-2698"><a href="#L-2698"><span class="linenos">2698</span></a><span class="sd"> Args:</span>
</span><span id="L-2699"><a href="#L-2699"><span class="linenos">2699</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-2700"><a href="#L-2700"><span class="linenos">2700</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-2701"><a href="#L-2701"><span class="linenos">2701</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="L-2702"><a href="#L-2702"><span class="linenos">2702</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="L-2703"><a href="#L-2703"><span class="linenos">2703</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="L-2704"><a href="#L-2704"><span class="linenos">2704</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2705"><a href="#L-2705"><span class="linenos">2705</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2706"><a href="#L-2706"><span class="linenos">2706</span></a>
</span><span id="L-2707"><a href="#L-2707"><span class="linenos">2707</span></a><span class="sd"> Returns:</span>
</span><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="L-2709"><a href="#L-2709"><span class="linenos">2709</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2710"><a href="#L-2710"><span class="linenos">2710</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="L-2711"><a href="#L-2711"><span class="linenos">2711</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-2712"><a href="#L-2712"><span class="linenos">2712</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2713"><a href="#L-2713"><span class="linenos">2713</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
</span><span id="L-2714"><a href="#L-2714"><span class="linenos">2714</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2716"><a href="#L-2716"><span class="linenos">2716</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2717"><a href="#L-2717"><span class="linenos">2717</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2718"><a href="#L-2718"><span class="linenos">2718</span></a> <span class="p">)</span>
</span><span id="L-2719"><a href="#L-2719"><span class="linenos">2719</span></a>
</span><span id="L-2720"><a href="#L-2720"><span class="linenos">2720</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
</span><span id="L-2721"><a href="#L-2721"><span class="linenos">2721</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2722"><a href="#L-2722"><span class="linenos">2722</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-2723"><a href="#L-2723"><span class="linenos">2723</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2724"><a href="#L-2724"><span class="linenos">2724</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2725"><a href="#L-2725"><span class="linenos">2725</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2726"><a href="#L-2726"><span class="linenos">2726</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2727"><a href="#L-2727"><span class="linenos">2727</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2729"><a href="#L-2729"><span class="linenos">2729</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
</span><span id="L-2730"><a href="#L-2730"><span class="linenos">2730</span></a>
</span><span id="L-2731"><a href="#L-2731"><span class="linenos">2731</span></a><span class="sd"> Example:</span>
</span><span id="L-2732"><a href="#L-2732"><span class="linenos">2732</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).lateral(&quot;OUTER explode(y) tbl2 AS z&quot;).from_(&quot;tbl&quot;).sql()</span>
</span><span id="L-2733"><a href="#L-2733"><span class="linenos">2733</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
</span><span id="L-2734"><a href="#L-2734"><span class="linenos">2734</span></a>
</span><span id="L-2735"><a href="#L-2735"><span class="linenos">2735</span></a><span class="sd"> Args:</span>
</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-2737"><a href="#L-2737"><span class="linenos">2737</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-2738"><a href="#L-2738"><span class="linenos">2738</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="L-2739"><a href="#L-2739"><span class="linenos">2739</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="L-2740"><a href="#L-2740"><span class="linenos">2740</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="L-2741"><a href="#L-2741"><span class="linenos">2741</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2742"><a href="#L-2742"><span class="linenos">2742</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2743"><a href="#L-2743"><span class="linenos">2743</span></a>
</span><span id="L-2744"><a href="#L-2744"><span class="linenos">2744</span></a><span class="sd"> Returns:</span>
</span><span id="L-2745"><a href="#L-2745"><span class="linenos">2745</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="L-2746"><a href="#L-2746"><span class="linenos">2746</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2747"><a href="#L-2747"><span class="linenos">2747</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="L-2748"><a href="#L-2748"><span class="linenos">2748</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-2749"><a href="#L-2749"><span class="linenos">2749</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2750"><a href="#L-2750"><span class="linenos">2750</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;laterals&quot;</span><span class="p">,</span>
</span><span id="L-2751"><a href="#L-2751"><span class="linenos">2751</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-2752"><a href="#L-2752"><span class="linenos">2752</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
</span><span id="L-2753"><a href="#L-2753"><span class="linenos">2753</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LATERAL VIEW&quot;</span><span class="p">,</span>
</span><span id="L-2754"><a href="#L-2754"><span class="linenos">2754</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2755"><a href="#L-2755"><span class="linenos">2755</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2756"><a href="#L-2756"><span class="linenos">2756</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2757"><a href="#L-2757"><span class="linenos">2757</span></a> <span class="p">)</span>
</span><span id="L-2758"><a href="#L-2758"><span class="linenos">2758</span></a>
</span><span id="L-2759"><a href="#L-2759"><span class="linenos">2759</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
</span><span id="L-2760"><a href="#L-2760"><span class="linenos">2760</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2761"><a href="#L-2761"><span class="linenos">2761</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-2762"><a href="#L-2762"><span class="linenos">2762</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2763"><a href="#L-2763"><span class="linenos">2763</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2764"><a href="#L-2764"><span class="linenos">2764</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2765"><a href="#L-2765"><span class="linenos">2765</span></a> <span class="n">join_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2766"><a href="#L-2766"><span class="linenos">2766</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2767"><a href="#L-2767"><span class="linenos">2767</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2768"><a href="#L-2768"><span class="linenos">2768</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2769"><a href="#L-2769"><span class="linenos">2769</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2771"><a href="#L-2771"><span class="linenos">2771</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2772"><a href="#L-2772"><span class="linenos">2772</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
</span><span id="L-2773"><a href="#L-2773"><span class="linenos">2773</span></a>
</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</span></a><span class="sd"> Example:</span>
</span><span id="L-2775"><a href="#L-2775"><span class="linenos">2775</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;).sql()</span>
</span><span id="L-2776"><a href="#L-2776"><span class="linenos">2776</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
</span><span id="L-2777"><a href="#L-2777"><span class="linenos">2777</span></a>
</span><span id="L-2778"><a href="#L-2778"><span class="linenos">2778</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;1&quot;).from_(&quot;a&quot;).join(&quot;b&quot;, using=[&quot;x&quot;, &quot;y&quot;, &quot;z&quot;]).sql()</span>
</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
</span><span id="L-2780"><a href="#L-2780"><span class="linenos">2780</span></a>
</span><span id="L-2781"><a href="#L-2781"><span class="linenos">2781</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
</span><span id="L-2782"><a href="#L-2782"><span class="linenos">2782</span></a>
</span><span id="L-2783"><a href="#L-2783"><span class="linenos">2783</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;, join_type=&quot;left outer&quot;).sql()</span>
</span><span id="L-2784"><a href="#L-2784"><span class="linenos">2784</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
</span><span id="L-2785"><a href="#L-2785"><span class="linenos">2785</span></a>
</span><span id="L-2786"><a href="#L-2786"><span class="linenos">2786</span></a><span class="sd"> Args:</span>
</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-2789"><a href="#L-2789"><span class="linenos">2789</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
</span><span id="L-2790"><a href="#L-2790"><span class="linenos">2790</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-2791"><a href="#L-2791"><span class="linenos">2791</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
</span><span id="L-2792"><a href="#L-2792"><span class="linenos">2792</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-2793"><a href="#L-2793"><span class="linenos">2793</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="L-2794"><a href="#L-2794"><span class="linenos">2794</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="L-2795"><a href="#L-2795"><span class="linenos">2795</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
</span><span id="L-2797"><a href="#L-2797"><span class="linenos">2797</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="L-2798"><a href="#L-2798"><span class="linenos">2798</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2800"><a href="#L-2800"><span class="linenos">2800</span></a>
</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</span></a><span class="sd"> Returns:</span>
</span><span id="L-2802"><a href="#L-2802"><span class="linenos">2802</span></a><span class="sd"> Select: the modified expression.</span>
</span><span id="L-2803"><a href="#L-2803"><span class="linenos">2803</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</span></a>
</span><span id="L-2806"><a href="#L-2806"><span class="linenos">2806</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="L-2807"><a href="#L-2807"><span class="linenos">2807</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;JOIN&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="L-2808"><a href="#L-2808"><span class="linenos">2808</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="L-2810"><a href="#L-2810"><span class="linenos">2810</span></a>
</span><span id="L-2811"><a href="#L-2811"><span class="linenos">2811</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
</span><span id="L-2812"><a href="#L-2812"><span class="linenos">2812</span></a>
</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span>
</span><span id="L-2814"><a href="#L-2814"><span class="linenos">2814</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span>
</span><span id="L-2815"><a href="#L-2815"><span class="linenos">2815</span></a>
</span><span id="L-2816"><a href="#L-2816"><span class="linenos">2816</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
</span><span id="L-2817"><a href="#L-2817"><span class="linenos">2817</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
</span><span id="L-2818"><a href="#L-2818"><span class="linenos">2818</span></a> <span class="n">side</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
</span><span id="L-2819"><a href="#L-2819"><span class="linenos">2819</span></a> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
</span><span id="L-2820"><a href="#L-2820"><span class="linenos">2820</span></a>
</span><span id="L-2821"><a href="#L-2821"><span class="linenos">2821</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="L-2822"><a href="#L-2822"><span class="linenos">2822</span></a>
</span><span id="L-2823"><a href="#L-2823"><span class="linenos">2823</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
</span><span id="L-2824"><a href="#L-2824"><span class="linenos">2824</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
</span><span id="L-2827"><a href="#L-2827"><span class="linenos">2827</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
</span><span id="L-2828"><a href="#L-2828"><span class="linenos">2828</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
</span><span id="L-2829"><a href="#L-2829"><span class="linenos">2829</span></a>
</span><span id="L-2830"><a href="#L-2830"><span class="linenos">2830</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
</span><span id="L-2831"><a href="#L-2831"><span class="linenos">2831</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-2832"><a href="#L-2832"><span class="linenos">2832</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;on&quot;</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span>
</span><span id="L-2833"><a href="#L-2833"><span class="linenos">2833</span></a>
</span><span id="L-2834"><a href="#L-2834"><span class="linenos">2834</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
</span><span id="L-2835"><a href="#L-2835"><span class="linenos">2835</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="L-2836"><a href="#L-2836"><span class="linenos">2836</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
</span><span id="L-2837"><a href="#L-2837"><span class="linenos">2837</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
</span><span id="L-2838"><a href="#L-2838"><span class="linenos">2838</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
</span><span id="L-2839"><a href="#L-2839"><span class="linenos">2839</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-2840"><a href="#L-2840"><span class="linenos">2840</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a> <span class="p">)</span>
</span><span id="L-2843"><a href="#L-2843"><span class="linenos">2843</span></a>
</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span>
</span><span id="L-2846"><a href="#L-2846"><span class="linenos">2846</span></a>
</span><span id="L-2847"><a href="#L-2847"><span class="linenos">2847</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a> <span class="n">join</span><span class="p">,</span>
</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2850"><a href="#L-2850"><span class="linenos">2850</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;joins&quot;</span><span class="p">,</span>
</span><span id="L-2851"><a href="#L-2851"><span class="linenos">2851</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-2852"><a href="#L-2852"><span class="linenos">2852</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2854"><a href="#L-2854"><span class="linenos">2854</span></a> <span class="p">)</span>
</span><span id="L-2855"><a href="#L-2855"><span class="linenos">2855</span></a>
</span><span id="L-2856"><a href="#L-2856"><span class="linenos">2856</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-2859"><a href="#L-2859"><span class="linenos">2859</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2860"><a href="#L-2860"><span class="linenos">2860</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2861"><a href="#L-2861"><span class="linenos">2861</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2863"><a href="#L-2863"><span class="linenos">2863</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2865"><a href="#L-2865"><span class="linenos">2865</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
</span><span id="L-2866"><a href="#L-2866"><span class="linenos">2866</span></a>
</span><span id="L-2867"><a href="#L-2867"><span class="linenos">2867</span></a><span class="sd"> Example:</span>
</span><span id="L-2868"><a href="#L-2868"><span class="linenos">2868</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
</span><span id="L-2869"><a href="#L-2869"><span class="linenos">2869</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
</span><span id="L-2870"><a href="#L-2870"><span class="linenos">2870</span></a>
</span><span id="L-2871"><a href="#L-2871"><span class="linenos">2871</span></a><span class="sd"> Args:</span>
</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-2873"><a href="#L-2873"><span class="linenos">2873</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-2874"><a href="#L-2874"><span class="linenos">2874</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
</span><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
</span><span id="L-2876"><a href="#L-2876"><span class="linenos">2876</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="L-2877"><a href="#L-2877"><span class="linenos">2877</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="L-2878"><a href="#L-2878"><span class="linenos">2878</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2880"><a href="#L-2880"><span class="linenos">2880</span></a>
</span><span id="L-2881"><a href="#L-2881"><span class="linenos">2881</span></a><span class="sd"> Returns:</span>
</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a><span class="sd"> Select: the modified expression.</span>
</span><span id="L-2883"><a href="#L-2883"><span class="linenos">2883</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="L-2885"><a href="#L-2885"><span class="linenos">2885</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-2886"><a href="#L-2886"><span class="linenos">2886</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2887"><a href="#L-2887"><span class="linenos">2887</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
</span><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-2889"><a href="#L-2889"><span class="linenos">2889</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
</span><span id="L-2890"><a href="#L-2890"><span class="linenos">2890</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2891"><a href="#L-2891"><span class="linenos">2891</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2892"><a href="#L-2892"><span class="linenos">2892</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2893"><a href="#L-2893"><span class="linenos">2893</span></a> <span class="p">)</span>
</span><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a>
</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
</span><span id="L-2896"><a href="#L-2896"><span class="linenos">2896</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2897"><a href="#L-2897"><span class="linenos">2897</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-2898"><a href="#L-2898"><span class="linenos">2898</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2899"><a href="#L-2899"><span class="linenos">2899</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2900"><a href="#L-2900"><span class="linenos">2900</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2901"><a href="#L-2901"><span class="linenos">2901</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2902"><a href="#L-2902"><span class="linenos">2902</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
</span><span id="L-2905"><a href="#L-2905"><span class="linenos">2905</span></a>
</span><span id="L-2906"><a href="#L-2906"><span class="linenos">2906</span></a><span class="sd"> Example:</span>
</span><span id="L-2907"><a href="#L-2907"><span class="linenos">2907</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;COUNT(y)&quot;).from_(&quot;tbl&quot;).group_by(&quot;x&quot;).having(&quot;COUNT(y) &gt; 3&quot;).sql()</span>
</span><span id="L-2908"><a href="#L-2908"><span class="linenos">2908</span></a><span class="sd"> &#39;SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) &gt; 3&#39;</span>
</span><span id="L-2909"><a href="#L-2909"><span class="linenos">2909</span></a>
</span><span id="L-2910"><a href="#L-2910"><span class="linenos">2910</span></a><span class="sd"> Args:</span>
</span><span id="L-2911"><a href="#L-2911"><span class="linenos">2911</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-2912"><a href="#L-2912"><span class="linenos">2912</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
</span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="L-2916"><a href="#L-2916"><span class="linenos">2916</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="L-2917"><a href="#L-2917"><span class="linenos">2917</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2918"><a href="#L-2918"><span class="linenos">2918</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a>
</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</span></a><span class="sd"> Returns:</span>
</span><span id="L-2921"><a href="#L-2921"><span class="linenos">2921</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="L-2922"><a href="#L-2922"><span class="linenos">2922</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-2925"><a href="#L-2925"><span class="linenos">2925</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2926"><a href="#L-2926"><span class="linenos">2926</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;having&quot;</span><span class="p">,</span>
</span><span id="L-2927"><a href="#L-2927"><span class="linenos">2927</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-2928"><a href="#L-2928"><span class="linenos">2928</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
</span><span id="L-2929"><a href="#L-2929"><span class="linenos">2929</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2931"><a href="#L-2931"><span class="linenos">2931</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2932"><a href="#L-2932"><span class="linenos">2932</span></a> <span class="p">)</span>
</span><span id="L-2933"><a href="#L-2933"><span class="linenos">2933</span></a>
</span><span id="L-2934"><a href="#L-2934"><span class="linenos">2934</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-2937"><a href="#L-2937"><span class="linenos">2937</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2939"><a href="#L-2939"><span class="linenos">2939</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2940"><a href="#L-2940"><span class="linenos">2940</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2941"><a href="#L-2941"><span class="linenos">2941</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2942"><a href="#L-2942"><span class="linenos">2942</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="L-2943"><a href="#L-2943"><span class="linenos">2943</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-2944"><a href="#L-2944"><span class="linenos">2944</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2945"><a href="#L-2945"><span class="linenos">2945</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;windows&quot;</span><span class="p">,</span>
</span><span id="L-2946"><a href="#L-2946"><span class="linenos">2946</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-2947"><a href="#L-2947"><span class="linenos">2947</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
</span><span id="L-2948"><a href="#L-2948"><span class="linenos">2948</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2949"><a href="#L-2949"><span class="linenos">2949</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2950"><a href="#L-2950"><span class="linenos">2950</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2951"><a href="#L-2951"><span class="linenos">2951</span></a> <span class="p">)</span>
</span><span id="L-2952"><a href="#L-2952"><span class="linenos">2952</span></a>
</span><span id="L-2953"><a href="#L-2953"><span class="linenos">2953</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
</span><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2955"><a href="#L-2955"><span class="linenos">2955</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="L-2956"><a href="#L-2956"><span class="linenos">2956</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2957"><a href="#L-2957"><span class="linenos">2957</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2958"><a href="#L-2958"><span class="linenos">2958</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-2959"><a href="#L-2959"><span class="linenos">2959</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2960"><a href="#L-2960"><span class="linenos">2960</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2961"><a href="#L-2961"><span class="linenos">2961</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="L-2962"><a href="#L-2962"><span class="linenos">2962</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-2963"><a href="#L-2963"><span class="linenos">2963</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;qualify&quot;</span><span class="p">,</span>
</span><span id="L-2965"><a href="#L-2965"><span class="linenos">2965</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-2966"><a href="#L-2966"><span class="linenos">2966</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-2968"><a href="#L-2968"><span class="linenos">2968</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-2969"><a href="#L-2969"><span class="linenos">2969</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-2970"><a href="#L-2970"><span class="linenos">2970</span></a> <span class="p">)</span>
</span><span id="L-2971"><a href="#L-2971"><span class="linenos">2971</span></a>
</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
</span><span id="L-2973"><a href="#L-2973"><span class="linenos">2973</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-2974"><a href="#L-2974"><span class="linenos">2974</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-2975"><a href="#L-2975"><span class="linenos">2975</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</span></a><span class="sd"> Set the OFFSET expression.</span>
</span><span id="L-2977"><a href="#L-2977"><span class="linenos">2977</span></a>
</span><span id="L-2978"><a href="#L-2978"><span class="linenos">2978</span></a><span class="sd"> Example:</span>
</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
</span><span id="L-2980"><a href="#L-2980"><span class="linenos">2980</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
</span><span id="L-2981"><a href="#L-2981"><span class="linenos">2981</span></a>
</span><span id="L-2982"><a href="#L-2982"><span class="linenos">2982</span></a><span class="sd"> Args:</span>
</span><span id="L-2983"><a href="#L-2983"><span class="linenos">2983</span></a><span class="sd"> ons: the expressions to distinct on</span>
</span><span id="L-2984"><a href="#L-2984"><span class="linenos">2984</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
</span><span id="L-2985"><a href="#L-2985"><span class="linenos">2985</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a>
</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</span></a><span class="sd"> Returns:</span>
</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a><span class="sd"> Select: the modified expression.</span>
</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-2990"><a href="#L-2990"><span class="linenos">2990</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="L-2991"><a href="#L-2991"><span class="linenos">2991</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
</span><span id="L-2992"><a href="#L-2992"><span class="linenos">2992</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="L-2993"><a href="#L-2993"><span class="linenos">2993</span></a> <span class="k">return</span> <span class="n">instance</span>
</span><span id="L-2994"><a href="#L-2994"><span class="linenos">2994</span></a>
</span><span id="L-2995"><a href="#L-2995"><span class="linenos">2995</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
</span><span id="L-2996"><a href="#L-2996"><span class="linenos">2996</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-2998"><a href="#L-2998"><span class="linenos">2998</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-2999"><a href="#L-2999"><span class="linenos">2999</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-3000"><a href="#L-3000"><span class="linenos">3000</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-3001"><a href="#L-3001"><span class="linenos">3001</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-3002"><a href="#L-3002"><span class="linenos">3002</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
</span><span id="L-3003"><a href="#L-3003"><span class="linenos">3003</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-3004"><a href="#L-3004"><span class="linenos">3004</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
</span><span id="L-3005"><a href="#L-3005"><span class="linenos">3005</span></a>
</span><span id="L-3006"><a href="#L-3006"><span class="linenos">3006</span></a><span class="sd"> Example:</span>
</span><span id="L-3007"><a href="#L-3007"><span class="linenos">3007</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).ctas(&quot;x&quot;).sql()</span>
</span><span id="L-3008"><a href="#L-3008"><span class="linenos">3008</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
</span><span id="L-3009"><a href="#L-3009"><span class="linenos">3009</span></a>
</span><span id="L-3010"><a href="#L-3010"><span class="linenos">3010</span></a><span class="sd"> Args:</span>
</span><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
</span><span id="L-3012"><a href="#L-3012"><span class="linenos">3012</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-3013"><a href="#L-3013"><span class="linenos">3013</span></a><span class="sd"> properties: an optional mapping of table properties</span>
</span><span id="L-3014"><a href="#L-3014"><span class="linenos">3014</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
</span><span id="L-3015"><a href="#L-3015"><span class="linenos">3015</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-3016"><a href="#L-3016"><span class="linenos">3016</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a>
</span><span id="L-3018"><a href="#L-3018"><span class="linenos">3018</span></a><span class="sd"> Returns:</span>
</span><span id="L-3019"><a href="#L-3019"><span class="linenos">3019</span></a><span class="sd"> The new Create expression.</span>
</span><span id="L-3020"><a href="#L-3020"><span class="linenos">3020</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-3021"><a href="#L-3021"><span class="linenos">3021</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="L-3022"><a href="#L-3022"><span class="linenos">3022</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
</span><span id="L-3023"><a href="#L-3023"><span class="linenos">3023</span></a> <span class="n">table</span><span class="p">,</span>
</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
</span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-3026"><a href="#L-3026"><span class="linenos">3026</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-3027"><a href="#L-3027"><span class="linenos">3027</span></a> <span class="p">)</span>
</span><span id="L-3028"><a href="#L-3028"><span class="linenos">3028</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="L-3029"><a href="#L-3029"><span class="linenos">3029</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
</span><span id="L-3030"><a href="#L-3030"><span class="linenos">3030</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span>
</span><span id="L-3031"><a href="#L-3031"><span class="linenos">3031</span></a>
</span><span id="L-3032"><a href="#L-3032"><span class="linenos">3032</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
</span><span id="L-3033"><a href="#L-3033"><span class="linenos">3033</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span>
</span><span id="L-3034"><a href="#L-3034"><span class="linenos">3034</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">&quot;table&quot;</span><span class="p">,</span>
</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span>
</span><span id="L-3037"><a href="#L-3037"><span class="linenos">3037</span></a> <span class="p">)</span>
</span><span id="L-3038"><a href="#L-3038"><span class="linenos">3038</span></a>
</span><span id="L-3039"><a href="#L-3039"><span class="linenos">3039</span></a> <span class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-3040"><a href="#L-3040"><span class="linenos">3040</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-3041"><a href="#L-3041"><span class="linenos">3041</span></a><span class="sd"> Set the locking read mode for this expression.</span>
</span><span id="L-3042"><a href="#L-3042"><span class="linenos">3042</span></a>
</span><span id="L-3043"><a href="#L-3043"><span class="linenos">3043</span></a><span class="sd"> Examples:</span>
</span><span id="L-3044"><a href="#L-3044"><span class="linenos">3044</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock().sql(&quot;mysql&quot;)</span>
</span><span id="L-3045"><a href="#L-3045"><span class="linenos">3045</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
</span><span id="L-3046"><a href="#L-3046"><span class="linenos">3046</span></a>
</span><span id="L-3047"><a href="#L-3047"><span class="linenos">3047</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock(update=False).sql(&quot;mysql&quot;)</span>
</span><span id="L-3048"><a href="#L-3048"><span class="linenos">3048</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a>
</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</span></a><span class="sd"> Args:</span>
</span><span id="L-3051"><a href="#L-3051"><span class="linenos">3051</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span>
</span><span id="L-3052"><a href="#L-3052"><span class="linenos">3052</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="L-3053"><a href="#L-3053"><span class="linenos">3053</span></a>
</span><span id="L-3054"><a href="#L-3054"><span class="linenos">3054</span></a><span class="sd"> Returns:</span>
</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</span></a><span class="sd"> The modified expression.</span>
</span><span id="L-3056"><a href="#L-3056"><span class="linenos">3056</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-3057"><a href="#L-3057"><span class="linenos">3057</span></a>
</span><span id="L-3058"><a href="#L-3058"><span class="linenos">3058</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="L-3059"><a href="#L-3059"><span class="linenos">3059</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
</span><span id="L-3060"><a href="#L-3060"><span class="linenos">3060</span></a>
</span><span id="L-3061"><a href="#L-3061"><span class="linenos">3061</span></a> <span class="k">return</span> <span class="n">inst</span>
</span><span id="L-3062"><a href="#L-3062"><span class="linenos">3062</span></a>
</span><span id="L-3063"><a href="#L-3063"><span class="linenos">3063</span></a> <span class="nd">@property</span>
</span><span id="L-3064"><a href="#L-3064"><span class="linenos">3064</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="L-3065"><a href="#L-3065"><span class="linenos">3065</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">]</span>
</span><span id="L-3066"><a href="#L-3066"><span class="linenos">3066</span></a>
</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</span></a> <span class="nd">@property</span>
</span><span id="L-3068"><a href="#L-3068"><span class="linenos">3068</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-3069"><a href="#L-3069"><span class="linenos">3069</span></a> <span class="k">return</span> <span class="nb">any</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span>
</span><span id="L-3070"><a href="#L-3070"><span class="linenos">3070</span></a>
</span><span id="L-3071"><a href="#L-3071"><span class="linenos">3071</span></a> <span class="nd">@property</span>
</span><span id="L-3072"><a href="#L-3072"><span class="linenos">3072</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
</span><span id="L-3073"><a href="#L-3073"><span class="linenos">3073</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span><span id="L-3074"><a href="#L-3074"><span class="linenos">3074</span></a>
</span><span id="L-3075"><a href="#L-3075"><span class="linenos">3075</span></a>
</span><span id="L-3076"><a href="#L-3076"><span class="linenos">3076</span></a><span class="k">class</span> <span class="nc">Subquery</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</span><span class="p">):</span>
</span><span id="L-3077"><a href="#L-3077"><span class="linenos">3077</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-3078"><a href="#L-3078"><span class="linenos">3078</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-3079"><a href="#L-3079"><span class="linenos">3079</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3080"><a href="#L-3080"><span class="linenos">3080</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3081"><a href="#L-3081"><span class="linenos">3081</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a> <span class="p">}</span>
</span><span id="L-3083"><a href="#L-3083"><span class="linenos">3083</span></a>
</span><span id="L-3084"><a href="#L-3084"><span class="linenos">3084</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-3085"><a href="#L-3085"><span class="linenos">3085</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-3086"><a href="#L-3086"><span class="linenos">3086</span></a><span class="sd"> Returns the first non subquery.</span>
</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span>
</span><span id="L-3090"><a href="#L-3090"><span class="linenos">3090</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="L-3092"><a href="#L-3092"><span class="linenos">3092</span></a>
</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a> <span class="nd">@property</span>
</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-3095"><a href="#L-3095"><span class="linenos">3095</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span>
</span><span id="L-3096"><a href="#L-3096"><span class="linenos">3096</span></a>
</span><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</span></a> <span class="nd">@property</span>
</span><span id="L-3098"><a href="#L-3098"><span class="linenos">3098</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-3099"><a href="#L-3099"><span class="linenos">3099</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span><span id="L-3100"><a href="#L-3100"><span class="linenos">3100</span></a>
</span><span id="L-3101"><a href="#L-3101"><span class="linenos">3101</span></a>
</span><span id="L-3102"><a href="#L-3102"><span class="linenos">3102</span></a><span class="k">class</span> <span class="nc">TableSample</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3103"><a href="#L-3103"><span class="linenos">3103</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-3104"><a href="#L-3104"><span class="linenos">3104</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3105"><a href="#L-3105"><span class="linenos">3105</span></a> <span class="s2">&quot;method&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3106"><a href="#L-3106"><span class="linenos">3106</span></a> <span class="s2">&quot;bucket_numerator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3107"><a href="#L-3107"><span class="linenos">3107</span></a> <span class="s2">&quot;bucket_denominator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3108"><a href="#L-3108"><span class="linenos">3108</span></a> <span class="s2">&quot;bucket_field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3109"><a href="#L-3109"><span class="linenos">3109</span></a> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3110"><a href="#L-3110"><span class="linenos">3110</span></a> <span class="s2">&quot;rows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3111"><a href="#L-3111"><span class="linenos">3111</span></a> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3112"><a href="#L-3112"><span class="linenos">3112</span></a> <span class="s2">&quot;seed&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3113"><a href="#L-3113"><span class="linenos">3113</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3114"><a href="#L-3114"><span class="linenos">3114</span></a> <span class="p">}</span>
</span><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</span></a>
</span><span id="L-3116"><a href="#L-3116"><span class="linenos">3116</span></a>
</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a><span class="k">class</span> <span class="nc">Tag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tags are used for generating arbitrary sql like SELECT &lt;span&gt;x&lt;/span&gt;.&quot;&quot;&quot;</span>
</span><span id="L-3119"><a href="#L-3119"><span class="linenos">3119</span></a>
</span><span id="L-3120"><a href="#L-3120"><span class="linenos">3120</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3122"><a href="#L-3122"><span class="linenos">3122</span></a> <span class="s2">&quot;prefix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3123"><a href="#L-3123"><span class="linenos">3123</span></a> <span class="s2">&quot;postfix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3124"><a href="#L-3124"><span class="linenos">3124</span></a> <span class="p">}</span>
</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</span></a>
</span><span id="L-3126"><a href="#L-3126"><span class="linenos">3126</span></a>
</span><span id="L-3127"><a href="#L-3127"><span class="linenos">3127</span></a><span class="k">class</span> <span class="nc">Pivot</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3128"><a href="#L-3128"><span class="linenos">3128</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-3129"><a href="#L-3129"><span class="linenos">3129</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3130"><a href="#L-3130"><span class="linenos">3130</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-3131"><a href="#L-3131"><span class="linenos">3131</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-3132"><a href="#L-3132"><span class="linenos">3132</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-3133"><a href="#L-3133"><span class="linenos">3133</span></a> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3134"><a href="#L-3134"><span class="linenos">3134</span></a> <span class="p">}</span>
</span><span id="L-3135"><a href="#L-3135"><span class="linenos">3135</span></a>
</span><span id="L-3136"><a href="#L-3136"><span class="linenos">3136</span></a>
</span><span id="L-3137"><a href="#L-3137"><span class="linenos">3137</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3138"><a href="#L-3138"><span class="linenos">3138</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-3139"><a href="#L-3139"><span class="linenos">3139</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-3140"><a href="#L-3140"><span class="linenos">3140</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3141"><a href="#L-3141"><span class="linenos">3141</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3142"><a href="#L-3142"><span class="linenos">3142</span></a> <span class="s2">&quot;spec&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3143"><a href="#L-3143"><span class="linenos">3143</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a> <span class="s2">&quot;over&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3145"><a href="#L-3145"><span class="linenos">3145</span></a> <span class="s2">&quot;first&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3146"><a href="#L-3146"><span class="linenos">3146</span></a> <span class="p">}</span>
</span><span id="L-3147"><a href="#L-3147"><span class="linenos">3147</span></a>
</span><span id="L-3148"><a href="#L-3148"><span class="linenos">3148</span></a>
</span><span id="L-3149"><a href="#L-3149"><span class="linenos">3149</span></a><span class="k">class</span> <span class="nc">WindowSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3150"><a href="#L-3150"><span class="linenos">3150</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-3151"><a href="#L-3151"><span class="linenos">3151</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3152"><a href="#L-3152"><span class="linenos">3152</span></a> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3153"><a href="#L-3153"><span class="linenos">3153</span></a> <span class="s2">&quot;start_side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3154"><a href="#L-3154"><span class="linenos">3154</span></a> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3155"><a href="#L-3155"><span class="linenos">3155</span></a> <span class="s2">&quot;end_side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3156"><a href="#L-3156"><span class="linenos">3156</span></a> <span class="p">}</span>
</span><span id="L-3157"><a href="#L-3157"><span class="linenos">3157</span></a>
</span><span id="L-3158"><a href="#L-3158"><span class="linenos">3158</span></a>
</span><span id="L-3159"><a href="#L-3159"><span class="linenos">3159</span></a><span class="k">class</span> <span class="nc">Where</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3160"><a href="#L-3160"><span class="linenos">3160</span></a> <span class="k">pass</span>
</span><span id="L-3161"><a href="#L-3161"><span class="linenos">3161</span></a>
</span><span id="L-3162"><a href="#L-3162"><span class="linenos">3162</span></a>
</span><span id="L-3163"><a href="#L-3163"><span class="linenos">3163</span></a><span class="k">class</span> <span class="nc">Star</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3164"><a href="#L-3164"><span class="linenos">3164</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;except&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;replace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3165"><a href="#L-3165"><span class="linenos">3165</span></a>
</span><span id="L-3166"><a href="#L-3166"><span class="linenos">3166</span></a> <span class="nd">@property</span>
</span><span id="L-3167"><a href="#L-3167"><span class="linenos">3167</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-3168"><a href="#L-3168"><span class="linenos">3168</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
</span><span id="L-3169"><a href="#L-3169"><span class="linenos">3169</span></a>
</span><span id="L-3170"><a href="#L-3170"><span class="linenos">3170</span></a> <span class="nd">@property</span>
</span><span id="L-3171"><a href="#L-3171"><span class="linenos">3171</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-3172"><a href="#L-3172"><span class="linenos">3172</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-3173"><a href="#L-3173"><span class="linenos">3173</span></a>
</span><span id="L-3174"><a href="#L-3174"><span class="linenos">3174</span></a>
</span><span id="L-3175"><a href="#L-3175"><span class="linenos">3175</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3177"><a href="#L-3177"><span class="linenos">3177</span></a>
</span><span id="L-3178"><a href="#L-3178"><span class="linenos">3178</span></a>
</span><span id="L-3179"><a href="#L-3179"><span class="linenos">3179</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3180"><a href="#L-3180"><span class="linenos">3180</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3181"><a href="#L-3181"><span class="linenos">3181</span></a>
</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</span></a>
</span><span id="L-3183"><a href="#L-3183"><span class="linenos">3183</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3184"><a href="#L-3184"><span class="linenos">3184</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3185"><a href="#L-3185"><span class="linenos">3185</span></a>
</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</span></a>
</span><span id="L-3187"><a href="#L-3187"><span class="linenos">3187</span></a><span class="k">class</span> <span class="nc">Null</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="L-3188"><a href="#L-3188"><span class="linenos">3188</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-3189"><a href="#L-3189"><span class="linenos">3189</span></a>
</span><span id="L-3190"><a href="#L-3190"><span class="linenos">3190</span></a> <span class="nd">@property</span>
</span><span id="L-3191"><a href="#L-3191"><span class="linenos">3191</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-3192"><a href="#L-3192"><span class="linenos">3192</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a>
</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</span></a>
</span><span id="L-3195"><a href="#L-3195"><span class="linenos">3195</span></a><span class="k">class</span> <span class="nc">Boolean</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="L-3196"><a href="#L-3196"><span class="linenos">3196</span></a> <span class="k">pass</span>
</span><span id="L-3197"><a href="#L-3197"><span class="linenos">3197</span></a>
</span><span id="L-3198"><a href="#L-3198"><span class="linenos">3198</span></a>
</span><span id="L-3199"><a href="#L-3199"><span class="linenos">3199</span></a><span class="k">class</span> <span class="nc">DataTypeSize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3200"><a href="#L-3200"><span class="linenos">3200</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3201"><a href="#L-3201"><span class="linenos">3201</span></a>
</span><span id="L-3202"><a href="#L-3202"><span class="linenos">3202</span></a>
</span><span id="L-3203"><a href="#L-3203"><span class="linenos">3203</span></a><span class="k">class</span> <span class="nc">DataType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3204"><a href="#L-3204"><span class="linenos">3204</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-3206"><a href="#L-3206"><span class="linenos">3206</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3207"><a href="#L-3207"><span class="linenos">3207</span></a> <span class="s2">&quot;nested&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3208"><a href="#L-3208"><span class="linenos">3208</span></a> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3209"><a href="#L-3209"><span class="linenos">3209</span></a> <span class="s2">&quot;prefix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</span></a> <span class="p">}</span>
</span><span id="L-3211"><a href="#L-3211"><span class="linenos">3211</span></a>
</span><span id="L-3212"><a href="#L-3212"><span class="linenos">3212</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
</span><span id="L-3213"><a href="#L-3213"><span class="linenos">3213</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3214"><a href="#L-3214"><span class="linenos">3214</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3216"><a href="#L-3216"><span class="linenos">3216</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3217"><a href="#L-3217"><span class="linenos">3217</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3219"><a href="#L-3219"><span class="linenos">3219</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3221"><a href="#L-3221"><span class="linenos">3221</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3222"><a href="#L-3222"><span class="linenos">3222</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3223"><a href="#L-3223"><span class="linenos">3223</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3225"><a href="#L-3225"><span class="linenos">3225</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3226"><a href="#L-3226"><span class="linenos">3226</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3227"><a href="#L-3227"><span class="linenos">3227</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3228"><a href="#L-3228"><span class="linenos">3228</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3229"><a href="#L-3229"><span class="linenos">3229</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3230"><a href="#L-3230"><span class="linenos">3230</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3231"><a href="#L-3231"><span class="linenos">3231</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3232"><a href="#L-3232"><span class="linenos">3232</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3233"><a href="#L-3233"><span class="linenos">3233</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3234"><a href="#L-3234"><span class="linenos">3234</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3235"><a href="#L-3235"><span class="linenos">3235</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3236"><a href="#L-3236"><span class="linenos">3236</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3237"><a href="#L-3237"><span class="linenos">3237</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3239"><a href="#L-3239"><span class="linenos">3239</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3242"><a href="#L-3242"><span class="linenos">3242</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3243"><a href="#L-3243"><span class="linenos">3243</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3244"><a href="#L-3244"><span class="linenos">3244</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3245"><a href="#L-3245"><span class="linenos">3245</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3246"><a href="#L-3246"><span class="linenos">3246</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3247"><a href="#L-3247"><span class="linenos">3247</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3248"><a href="#L-3248"><span class="linenos">3248</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3249"><a href="#L-3249"><span class="linenos">3249</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3251"><a href="#L-3251"><span class="linenos">3251</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3252"><a href="#L-3252"><span class="linenos">3252</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3253"><a href="#L-3253"><span class="linenos">3253</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3254"><a href="#L-3254"><span class="linenos">3254</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3257"><a href="#L-3257"><span class="linenos">3257</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3258"><a href="#L-3258"><span class="linenos">3258</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3260"><a href="#L-3260"><span class="linenos">3260</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3261"><a href="#L-3261"><span class="linenos">3261</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3262"><a href="#L-3262"><span class="linenos">3262</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3263"><a href="#L-3263"><span class="linenos">3263</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3265"><a href="#L-3265"><span class="linenos">3265</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3266"><a href="#L-3266"><span class="linenos">3266</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3267"><a href="#L-3267"><span class="linenos">3267</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span>
</span><span id="L-3268"><a href="#L-3268"><span class="linenos">3268</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3269"><a href="#L-3269"><span class="linenos">3269</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3270"><a href="#L-3270"><span class="linenos">3270</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3271"><a href="#L-3271"><span class="linenos">3271</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3272"><a href="#L-3272"><span class="linenos">3272</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3273"><a href="#L-3273"><span class="linenos">3273</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3274"><a href="#L-3274"><span class="linenos">3274</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3275"><a href="#L-3275"><span class="linenos">3275</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="L-3276"><a href="#L-3276"><span class="linenos">3276</span></a>
</span><span id="L-3277"><a href="#L-3277"><span class="linenos">3277</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-3278"><a href="#L-3278"><span class="linenos">3278</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
</span><span id="L-3279"><a href="#L-3279"><span class="linenos">3279</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
</span><span id="L-3280"><a href="#L-3280"><span class="linenos">3280</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
</span><span id="L-3281"><a href="#L-3281"><span class="linenos">3281</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
</span><span id="L-3282"><a href="#L-3282"><span class="linenos">3282</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
</span><span id="L-3283"><a href="#L-3283"><span class="linenos">3283</span></a> <span class="p">}</span>
</span><span id="L-3284"><a href="#L-3284"><span class="linenos">3284</span></a>
</span><span id="L-3285"><a href="#L-3285"><span class="linenos">3285</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-3286"><a href="#L-3286"><span class="linenos">3286</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
</span><span id="L-3287"><a href="#L-3287"><span class="linenos">3287</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
</span><span id="L-3288"><a href="#L-3288"><span class="linenos">3288</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
</span><span id="L-3289"><a href="#L-3289"><span class="linenos">3289</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
</span><span id="L-3290"><a href="#L-3290"><span class="linenos">3290</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT128</span><span class="p">,</span>
</span><span id="L-3291"><a href="#L-3291"><span class="linenos">3291</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT256</span><span class="p">,</span>
</span><span id="L-3292"><a href="#L-3292"><span class="linenos">3292</span></a> <span class="p">}</span>
</span><span id="L-3293"><a href="#L-3293"><span class="linenos">3293</span></a>
</span><span id="L-3294"><a href="#L-3294"><span class="linenos">3294</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-3295"><a href="#L-3295"><span class="linenos">3295</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
</span><span id="L-3296"><a href="#L-3296"><span class="linenos">3296</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
</span><span id="L-3297"><a href="#L-3297"><span class="linenos">3297</span></a> <span class="p">}</span>
</span><span id="L-3298"><a href="#L-3298"><span class="linenos">3298</span></a>
</span><span id="L-3299"><a href="#L-3299"><span class="linenos">3299</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</span></a>
</span><span id="L-3301"><a href="#L-3301"><span class="linenos">3301</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-3302"><a href="#L-3302"><span class="linenos">3302</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
</span><span id="L-3304"><a href="#L-3304"><span class="linenos">3304</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
</span><span id="L-3305"><a href="#L-3305"><span class="linenos">3305</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
</span><span id="L-3306"><a href="#L-3306"><span class="linenos">3306</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
</span><span id="L-3307"><a href="#L-3307"><span class="linenos">3307</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME64</span><span class="p">,</span>
</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</span></a> <span class="p">}</span>
</span><span id="L-3309"><a href="#L-3309"><span class="linenos">3309</span></a>
</span><span id="L-3310"><a href="#L-3310"><span class="linenos">3310</span></a> <span class="nd">@classmethod</span>
</span><span id="L-3311"><a href="#L-3311"><span class="linenos">3311</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
</span><span id="L-3314"><a href="#L-3314"><span class="linenos">3314</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
</span><span id="L-3315"><a href="#L-3315"><span class="linenos">3315</span></a>
</span><span id="L-3316"><a href="#L-3316"><span class="linenos">3316</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="L-3317"><a href="#L-3317"><span class="linenos">3317</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
</span><span id="L-3319"><a href="#L-3319"><span class="linenos">3319</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-3320"><a href="#L-3320"><span class="linenos">3320</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a>
</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-3323"><a href="#L-3323"><span class="linenos">3323</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="L-3324"><a href="#L-3324"><span class="linenos">3324</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span>
</span><span id="L-3325"><a href="#L-3325"><span class="linenos">3325</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span>
</span><span id="L-3326"><a href="#L-3326"><span class="linenos">3326</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
</span><span id="L-3327"><a href="#L-3327"><span class="linenos">3327</span></a> <span class="k">return</span> <span class="n">dtype</span>
</span><span id="L-3328"><a href="#L-3328"><span class="linenos">3328</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-3329"><a href="#L-3329"><span class="linenos">3329</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type&quot;</span><span class="p">)</span>
</span><span id="L-3330"><a href="#L-3330"><span class="linenos">3330</span></a>
</span><span id="L-3331"><a href="#L-3331"><span class="linenos">3331</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">})</span>
</span><span id="L-3332"><a href="#L-3332"><span class="linenos">3332</span></a>
</span><span id="L-3333"><a href="#L-3333"><span class="linenos">3333</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-3334"><a href="#L-3334"><span class="linenos">3334</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
</span><span id="L-3335"><a href="#L-3335"><span class="linenos">3335</span></a>
</span><span id="L-3336"><a href="#L-3336"><span class="linenos">3336</span></a>
</span><span id="L-3337"><a href="#L-3337"><span class="linenos">3337</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-pseudo.html</span>
</span><span id="L-3338"><a href="#L-3338"><span class="linenos">3338</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3339"><a href="#L-3339"><span class="linenos">3339</span></a> <span class="k">pass</span>
</span><span id="L-3340"><a href="#L-3340"><span class="linenos">3340</span></a>
</span><span id="L-3341"><a href="#L-3341"><span class="linenos">3341</span></a>
</span><span id="L-3342"><a href="#L-3342"><span class="linenos">3342</span></a><span class="c1"># WHERE x &lt;OP&gt; EXISTS|ALL|ANY|SOME(SELECT ...)</span>
</span><span id="L-3343"><a href="#L-3343"><span class="linenos">3343</span></a><span class="k">class</span> <span class="nc">SubqueryPredicate</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3344"><a href="#L-3344"><span class="linenos">3344</span></a> <span class="k">pass</span>
</span><span id="L-3345"><a href="#L-3345"><span class="linenos">3345</span></a>
</span><span id="L-3346"><a href="#L-3346"><span class="linenos">3346</span></a>
</span><span id="L-3347"><a href="#L-3347"><span class="linenos">3347</span></a><span class="k">class</span> <span class="nc">All</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
</span><span id="L-3348"><a href="#L-3348"><span class="linenos">3348</span></a> <span class="k">pass</span>
</span><span id="L-3349"><a href="#L-3349"><span class="linenos">3349</span></a>
</span><span id="L-3350"><a href="#L-3350"><span class="linenos">3350</span></a>
</span><span id="L-3351"><a href="#L-3351"><span class="linenos">3351</span></a><span class="k">class</span> <span class="nc">Any</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
</span><span id="L-3352"><a href="#L-3352"><span class="linenos">3352</span></a> <span class="k">pass</span>
</span><span id="L-3353"><a href="#L-3353"><span class="linenos">3353</span></a>
</span><span id="L-3354"><a href="#L-3354"><span class="linenos">3354</span></a>
</span><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a><span class="k">class</span> <span class="nc">Exists</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
</span><span id="L-3356"><a href="#L-3356"><span class="linenos">3356</span></a> <span class="k">pass</span>
</span><span id="L-3357"><a href="#L-3357"><span class="linenos">3357</span></a>
</span><span id="L-3358"><a href="#L-3358"><span class="linenos">3358</span></a>
</span><span id="L-3359"><a href="#L-3359"><span class="linenos">3359</span></a><span class="c1"># Commands to interact with the databases or engines. For most of the command</span>
</span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</span></a><span class="c1"># expressions we parse whatever comes after the command&#39;s name as a string.</span>
</span><span id="L-3361"><a href="#L-3361"><span class="linenos">3361</span></a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3362"><a href="#L-3362"><span class="linenos">3362</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3363"><a href="#L-3363"><span class="linenos">3363</span></a>
</span><span id="L-3364"><a href="#L-3364"><span class="linenos">3364</span></a>
</span><span id="L-3365"><a href="#L-3365"><span class="linenos">3365</span></a><span class="k">class</span> <span class="nc">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3366"><a href="#L-3366"><span class="linenos">3366</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3367"><a href="#L-3367"><span class="linenos">3367</span></a>
</span><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</span></a>
</span><span id="L-3369"><a href="#L-3369"><span class="linenos">3369</span></a><span class="k">class</span> <span class="nc">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3370"><a href="#L-3370"><span class="linenos">3370</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3371"><a href="#L-3371"><span class="linenos">3371</span></a>
</span><span id="L-3372"><a href="#L-3372"><span class="linenos">3372</span></a>
</span><span id="L-3373"><a href="#L-3373"><span class="linenos">3373</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3374"><a href="#L-3374"><span class="linenos">3374</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3375"><a href="#L-3375"><span class="linenos">3375</span></a>
</span><span id="L-3376"><a href="#L-3376"><span class="linenos">3376</span></a>
</span><span id="L-3377"><a href="#L-3377"><span class="linenos">3377</span></a><span class="k">class</span> <span class="nc">AlterTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3378"><a href="#L-3378"><span class="linenos">3378</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3379"><a href="#L-3379"><span class="linenos">3379</span></a>
</span><span id="L-3380"><a href="#L-3380"><span class="linenos">3380</span></a>
</span><span id="L-3381"><a href="#L-3381"><span class="linenos">3381</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3382"><a href="#L-3382"><span class="linenos">3382</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;enforced&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3383"><a href="#L-3383"><span class="linenos">3383</span></a>
</span><span id="L-3384"><a href="#L-3384"><span class="linenos">3384</span></a>
</span><span id="L-3385"><a href="#L-3385"><span class="linenos">3385</span></a><span class="k">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3386"><a href="#L-3386"><span class="linenos">3386</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3387"><a href="#L-3387"><span class="linenos">3387</span></a>
</span><span id="L-3388"><a href="#L-3388"><span class="linenos">3388</span></a>
</span><span id="L-3389"><a href="#L-3389"><span class="linenos">3389</span></a><span class="c1"># Binary expressions like (ADD a b)</span>
</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="L-3391"><a href="#L-3391"><span class="linenos">3391</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3392"><a href="#L-3392"><span class="linenos">3392</span></a>
</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a> <span class="nd">@property</span>
</span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-3395"><a href="#L-3395"><span class="linenos">3395</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
</span><span id="L-3396"><a href="#L-3396"><span class="linenos">3396</span></a>
</span><span id="L-3397"><a href="#L-3397"><span class="linenos">3397</span></a> <span class="nd">@property</span>
</span><span id="L-3398"><a href="#L-3398"><span class="linenos">3398</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-3399"><a href="#L-3399"><span class="linenos">3399</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span><span id="L-3400"><a href="#L-3400"><span class="linenos">3400</span></a>
</span><span id="L-3401"><a href="#L-3401"><span class="linenos">3401</span></a>
</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</span></a><span class="k">class</span> <span class="nc">Add</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3403"><a href="#L-3403"><span class="linenos">3403</span></a> <span class="k">pass</span>
</span><span id="L-3404"><a href="#L-3404"><span class="linenos">3404</span></a>
</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</span></a>
</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3407"><a href="#L-3407"><span class="linenos">3407</span></a> <span class="k">pass</span>
</span><span id="L-3408"><a href="#L-3408"><span class="linenos">3408</span></a>
</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</span></a>
</span><span id="L-3410"><a href="#L-3410"><span class="linenos">3410</span></a><span class="k">class</span> <span class="nc">And</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
</span><span id="L-3411"><a href="#L-3411"><span class="linenos">3411</span></a> <span class="k">pass</span>
</span><span id="L-3412"><a href="#L-3412"><span class="linenos">3412</span></a>
</span><span id="L-3413"><a href="#L-3413"><span class="linenos">3413</span></a>
</span><span id="L-3414"><a href="#L-3414"><span class="linenos">3414</span></a><span class="k">class</span> <span class="nc">Or</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
</span><span id="L-3415"><a href="#L-3415"><span class="linenos">3415</span></a> <span class="k">pass</span>
</span><span id="L-3416"><a href="#L-3416"><span class="linenos">3416</span></a>
</span><span id="L-3417"><a href="#L-3417"><span class="linenos">3417</span></a>
</span><span id="L-3418"><a href="#L-3418"><span class="linenos">3418</span></a><span class="k">class</span> <span class="nc">BitwiseAnd</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</span></a> <span class="k">pass</span>
</span><span id="L-3420"><a href="#L-3420"><span class="linenos">3420</span></a>
</span><span id="L-3421"><a href="#L-3421"><span class="linenos">3421</span></a>
</span><span id="L-3422"><a href="#L-3422"><span class="linenos">3422</span></a><span class="k">class</span> <span class="nc">BitwiseLeftShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3423"><a href="#L-3423"><span class="linenos">3423</span></a> <span class="k">pass</span>
</span><span id="L-3424"><a href="#L-3424"><span class="linenos">3424</span></a>
</span><span id="L-3425"><a href="#L-3425"><span class="linenos">3425</span></a>
</span><span id="L-3426"><a href="#L-3426"><span class="linenos">3426</span></a><span class="k">class</span> <span class="nc">BitwiseOr</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3427"><a href="#L-3427"><span class="linenos">3427</span></a> <span class="k">pass</span>
</span><span id="L-3428"><a href="#L-3428"><span class="linenos">3428</span></a>
</span><span id="L-3429"><a href="#L-3429"><span class="linenos">3429</span></a>
</span><span id="L-3430"><a href="#L-3430"><span class="linenos">3430</span></a><span class="k">class</span> <span class="nc">BitwiseRightShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3431"><a href="#L-3431"><span class="linenos">3431</span></a> <span class="k">pass</span>
</span><span id="L-3432"><a href="#L-3432"><span class="linenos">3432</span></a>
</span><span id="L-3433"><a href="#L-3433"><span class="linenos">3433</span></a>
</span><span id="L-3434"><a href="#L-3434"><span class="linenos">3434</span></a><span class="k">class</span> <span class="nc">BitwiseXor</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3435"><a href="#L-3435"><span class="linenos">3435</span></a> <span class="k">pass</span>
</span><span id="L-3436"><a href="#L-3436"><span class="linenos">3436</span></a>
</span><span id="L-3437"><a href="#L-3437"><span class="linenos">3437</span></a>
</span><span id="L-3438"><a href="#L-3438"><span class="linenos">3438</span></a><span class="k">class</span> <span class="nc">Div</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3439"><a href="#L-3439"><span class="linenos">3439</span></a> <span class="k">pass</span>
</span><span id="L-3440"><a href="#L-3440"><span class="linenos">3440</span></a>
</span><span id="L-3441"><a href="#L-3441"><span class="linenos">3441</span></a>
</span><span id="L-3442"><a href="#L-3442"><span class="linenos">3442</span></a><span class="k">class</span> <span class="nc">Overlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3443"><a href="#L-3443"><span class="linenos">3443</span></a> <span class="k">pass</span>
</span><span id="L-3444"><a href="#L-3444"><span class="linenos">3444</span></a>
</span><span id="L-3445"><a href="#L-3445"><span class="linenos">3445</span></a>
</span><span id="L-3446"><a href="#L-3446"><span class="linenos">3446</span></a><span class="k">class</span> <span class="nc">Dot</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3447"><a href="#L-3447"><span class="linenos">3447</span></a> <span class="nd">@property</span>
</span><span id="L-3448"><a href="#L-3448"><span class="linenos">3448</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-3449"><a href="#L-3449"><span class="linenos">3449</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-3450"><a href="#L-3450"><span class="linenos">3450</span></a>
</span><span id="L-3451"><a href="#L-3451"><span class="linenos">3451</span></a> <span class="nd">@classmethod</span>
</span><span id="L-3452"><a href="#L-3452"><span class="linenos">3452</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
</span><span id="L-3453"><a href="#L-3453"><span class="linenos">3453</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Dot object with a sequence of expressions.&quot;&quot;&quot;</span>
</span><span id="L-3454"><a href="#L-3454"><span class="linenos">3454</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">:</span>
</span><span id="L-3455"><a href="#L-3455"><span class="linenos">3455</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
</span><span id="L-3456"><a href="#L-3456"><span class="linenos">3456</span></a>
</span><span id="L-3457"><a href="#L-3457"><span class="linenos">3457</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
</span><span id="L-3458"><a href="#L-3458"><span class="linenos">3458</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
</span><span id="L-3459"><a href="#L-3459"><span class="linenos">3459</span></a>
</span><span id="L-3460"><a href="#L-3460"><span class="linenos">3460</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span>
</span><span id="L-3461"><a href="#L-3461"><span class="linenos">3461</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
</span><span id="L-3462"><a href="#L-3462"><span class="linenos">3462</span></a>
</span><span id="L-3463"><a href="#L-3463"><span class="linenos">3463</span></a> <span class="k">return</span> <span class="n">dot</span>
</span><span id="L-3464"><a href="#L-3464"><span class="linenos">3464</span></a>
</span><span id="L-3465"><a href="#L-3465"><span class="linenos">3465</span></a>
</span><span id="L-3466"><a href="#L-3466"><span class="linenos">3466</span></a><span class="k">class</span> <span class="nc">DPipe</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3467"><a href="#L-3467"><span class="linenos">3467</span></a> <span class="k">pass</span>
</span><span id="L-3468"><a href="#L-3468"><span class="linenos">3468</span></a>
</span><span id="L-3469"><a href="#L-3469"><span class="linenos">3469</span></a>
</span><span id="L-3470"><a href="#L-3470"><span class="linenos">3470</span></a><span class="k">class</span> <span class="nc">EQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3471"><a href="#L-3471"><span class="linenos">3471</span></a> <span class="k">pass</span>
</span><span id="L-3472"><a href="#L-3472"><span class="linenos">3472</span></a>
</span><span id="L-3473"><a href="#L-3473"><span class="linenos">3473</span></a>
</span><span id="L-3474"><a href="#L-3474"><span class="linenos">3474</span></a><span class="k">class</span> <span class="nc">NullSafeEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3475"><a href="#L-3475"><span class="linenos">3475</span></a> <span class="k">pass</span>
</span><span id="L-3476"><a href="#L-3476"><span class="linenos">3476</span></a>
</span><span id="L-3477"><a href="#L-3477"><span class="linenos">3477</span></a>
</span><span id="L-3478"><a href="#L-3478"><span class="linenos">3478</span></a><span class="k">class</span> <span class="nc">NullSafeNEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3479"><a href="#L-3479"><span class="linenos">3479</span></a> <span class="k">pass</span>
</span><span id="L-3480"><a href="#L-3480"><span class="linenos">3480</span></a>
</span><span id="L-3481"><a href="#L-3481"><span class="linenos">3481</span></a>
</span><span id="L-3482"><a href="#L-3482"><span class="linenos">3482</span></a><span class="k">class</span> <span class="nc">Distance</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3483"><a href="#L-3483"><span class="linenos">3483</span></a> <span class="k">pass</span>
</span><span id="L-3484"><a href="#L-3484"><span class="linenos">3484</span></a>
</span><span id="L-3485"><a href="#L-3485"><span class="linenos">3485</span></a>
</span><span id="L-3486"><a href="#L-3486"><span class="linenos">3486</span></a><span class="k">class</span> <span class="nc">Escape</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3487"><a href="#L-3487"><span class="linenos">3487</span></a> <span class="k">pass</span>
</span><span id="L-3488"><a href="#L-3488"><span class="linenos">3488</span></a>
</span><span id="L-3489"><a href="#L-3489"><span class="linenos">3489</span></a>
</span><span id="L-3490"><a href="#L-3490"><span class="linenos">3490</span></a><span class="k">class</span> <span class="nc">Glob</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3491"><a href="#L-3491"><span class="linenos">3491</span></a> <span class="k">pass</span>
</span><span id="L-3492"><a href="#L-3492"><span class="linenos">3492</span></a>
</span><span id="L-3493"><a href="#L-3493"><span class="linenos">3493</span></a>
</span><span id="L-3494"><a href="#L-3494"><span class="linenos">3494</span></a><span class="k">class</span> <span class="nc">GT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3495"><a href="#L-3495"><span class="linenos">3495</span></a> <span class="k">pass</span>
</span><span id="L-3496"><a href="#L-3496"><span class="linenos">3496</span></a>
</span><span id="L-3497"><a href="#L-3497"><span class="linenos">3497</span></a>
</span><span id="L-3498"><a href="#L-3498"><span class="linenos">3498</span></a><span class="k">class</span> <span class="nc">GTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3499"><a href="#L-3499"><span class="linenos">3499</span></a> <span class="k">pass</span>
</span><span id="L-3500"><a href="#L-3500"><span class="linenos">3500</span></a>
</span><span id="L-3501"><a href="#L-3501"><span class="linenos">3501</span></a>
</span><span id="L-3502"><a href="#L-3502"><span class="linenos">3502</span></a><span class="k">class</span> <span class="nc">ILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3503"><a href="#L-3503"><span class="linenos">3503</span></a> <span class="k">pass</span>
</span><span id="L-3504"><a href="#L-3504"><span class="linenos">3504</span></a>
</span><span id="L-3505"><a href="#L-3505"><span class="linenos">3505</span></a>
</span><span id="L-3506"><a href="#L-3506"><span class="linenos">3506</span></a><span class="k">class</span> <span class="nc">ILikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3507"><a href="#L-3507"><span class="linenos">3507</span></a> <span class="k">pass</span>
</span><span id="L-3508"><a href="#L-3508"><span class="linenos">3508</span></a>
</span><span id="L-3509"><a href="#L-3509"><span class="linenos">3509</span></a>
</span><span id="L-3510"><a href="#L-3510"><span class="linenos">3510</span></a><span class="k">class</span> <span class="nc">IntDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3511"><a href="#L-3511"><span class="linenos">3511</span></a> <span class="k">pass</span>
</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</span></a>
</span><span id="L-3513"><a href="#L-3513"><span class="linenos">3513</span></a>
</span><span id="L-3514"><a href="#L-3514"><span class="linenos">3514</span></a><span class="k">class</span> <span class="nc">Is</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3515"><a href="#L-3515"><span class="linenos">3515</span></a> <span class="k">pass</span>
</span><span id="L-3516"><a href="#L-3516"><span class="linenos">3516</span></a>
</span><span id="L-3517"><a href="#L-3517"><span class="linenos">3517</span></a>
</span><span id="L-3518"><a href="#L-3518"><span class="linenos">3518</span></a><span class="k">class</span> <span class="nc">Kwarg</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3519"><a href="#L-3519"><span class="linenos">3519</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Kwarg in special functions like func(kwarg =&gt; y).&quot;&quot;&quot;</span>
</span><span id="L-3520"><a href="#L-3520"><span class="linenos">3520</span></a>
</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</span></a>
</span><span id="L-3522"><a href="#L-3522"><span class="linenos">3522</span></a><span class="k">class</span> <span class="nc">Like</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3523"><a href="#L-3523"><span class="linenos">3523</span></a> <span class="k">pass</span>
</span><span id="L-3524"><a href="#L-3524"><span class="linenos">3524</span></a>
</span><span id="L-3525"><a href="#L-3525"><span class="linenos">3525</span></a>
</span><span id="L-3526"><a href="#L-3526"><span class="linenos">3526</span></a><span class="k">class</span> <span class="nc">LikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3527"><a href="#L-3527"><span class="linenos">3527</span></a> <span class="k">pass</span>
</span><span id="L-3528"><a href="#L-3528"><span class="linenos">3528</span></a>
</span><span id="L-3529"><a href="#L-3529"><span class="linenos">3529</span></a>
</span><span id="L-3530"><a href="#L-3530"><span class="linenos">3530</span></a><span class="k">class</span> <span class="nc">LT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3531"><a href="#L-3531"><span class="linenos">3531</span></a> <span class="k">pass</span>
</span><span id="L-3532"><a href="#L-3532"><span class="linenos">3532</span></a>
</span><span id="L-3533"><a href="#L-3533"><span class="linenos">3533</span></a>
</span><span id="L-3534"><a href="#L-3534"><span class="linenos">3534</span></a><span class="k">class</span> <span class="nc">LTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3535"><a href="#L-3535"><span class="linenos">3535</span></a> <span class="k">pass</span>
</span><span id="L-3536"><a href="#L-3536"><span class="linenos">3536</span></a>
</span><span id="L-3537"><a href="#L-3537"><span class="linenos">3537</span></a>
</span><span id="L-3538"><a href="#L-3538"><span class="linenos">3538</span></a><span class="k">class</span> <span class="nc">Mod</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3539"><a href="#L-3539"><span class="linenos">3539</span></a> <span class="k">pass</span>
</span><span id="L-3540"><a href="#L-3540"><span class="linenos">3540</span></a>
</span><span id="L-3541"><a href="#L-3541"><span class="linenos">3541</span></a>
</span><span id="L-3542"><a href="#L-3542"><span class="linenos">3542</span></a><span class="k">class</span> <span class="nc">Mul</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3543"><a href="#L-3543"><span class="linenos">3543</span></a> <span class="k">pass</span>
</span><span id="L-3544"><a href="#L-3544"><span class="linenos">3544</span></a>
</span><span id="L-3545"><a href="#L-3545"><span class="linenos">3545</span></a>
</span><span id="L-3546"><a href="#L-3546"><span class="linenos">3546</span></a><span class="k">class</span> <span class="nc">NEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3547"><a href="#L-3547"><span class="linenos">3547</span></a> <span class="k">pass</span>
</span><span id="L-3548"><a href="#L-3548"><span class="linenos">3548</span></a>
</span><span id="L-3549"><a href="#L-3549"><span class="linenos">3549</span></a>
</span><span id="L-3550"><a href="#L-3550"><span class="linenos">3550</span></a><span class="k">class</span> <span class="nc">SimilarTo</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3551"><a href="#L-3551"><span class="linenos">3551</span></a> <span class="k">pass</span>
</span><span id="L-3552"><a href="#L-3552"><span class="linenos">3552</span></a>
</span><span id="L-3553"><a href="#L-3553"><span class="linenos">3553</span></a>
</span><span id="L-3554"><a href="#L-3554"><span class="linenos">3554</span></a><span class="k">class</span> <span class="nc">Slice</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3555"><a href="#L-3555"><span class="linenos">3555</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3556"><a href="#L-3556"><span class="linenos">3556</span></a>
</span><span id="L-3557"><a href="#L-3557"><span class="linenos">3557</span></a>
</span><span id="L-3558"><a href="#L-3558"><span class="linenos">3558</span></a><span class="k">class</span> <span class="nc">Sub</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3559"><a href="#L-3559"><span class="linenos">3559</span></a> <span class="k">pass</span>
</span><span id="L-3560"><a href="#L-3560"><span class="linenos">3560</span></a>
</span><span id="L-3561"><a href="#L-3561"><span class="linenos">3561</span></a>
</span><span id="L-3562"><a href="#L-3562"><span class="linenos">3562</span></a><span class="k">class</span> <span class="nc">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3563"><a href="#L-3563"><span class="linenos">3563</span></a> <span class="k">pass</span>
</span><span id="L-3564"><a href="#L-3564"><span class="linenos">3564</span></a>
</span><span id="L-3565"><a href="#L-3565"><span class="linenos">3565</span></a>
</span><span id="L-3566"><a href="#L-3566"><span class="linenos">3566</span></a><span class="c1"># Unary Expressions</span>
</span><span id="L-3567"><a href="#L-3567"><span class="linenos">3567</span></a><span class="c1"># (NOT a)</span>
</span><span id="L-3568"><a href="#L-3568"><span class="linenos">3568</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="L-3569"><a href="#L-3569"><span class="linenos">3569</span></a> <span class="k">pass</span>
</span><span id="L-3570"><a href="#L-3570"><span class="linenos">3570</span></a>
</span><span id="L-3571"><a href="#L-3571"><span class="linenos">3571</span></a>
</span><span id="L-3572"><a href="#L-3572"><span class="linenos">3572</span></a><span class="k">class</span> <span class="nc">BitwiseNot</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
</span><span id="L-3573"><a href="#L-3573"><span class="linenos">3573</span></a> <span class="k">pass</span>
</span><span id="L-3574"><a href="#L-3574"><span class="linenos">3574</span></a>
</span><span id="L-3575"><a href="#L-3575"><span class="linenos">3575</span></a>
</span><span id="L-3576"><a href="#L-3576"><span class="linenos">3576</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
</span><span id="L-3577"><a href="#L-3577"><span class="linenos">3577</span></a> <span class="k">pass</span>
</span><span id="L-3578"><a href="#L-3578"><span class="linenos">3578</span></a>
</span><span id="L-3579"><a href="#L-3579"><span class="linenos">3579</span></a>
</span><span id="L-3580"><a href="#L-3580"><span class="linenos">3580</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
</span><span id="L-3581"><a href="#L-3581"><span class="linenos">3581</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3582"><a href="#L-3582"><span class="linenos">3582</span></a>
</span><span id="L-3583"><a href="#L-3583"><span class="linenos">3583</span></a>
</span><span id="L-3584"><a href="#L-3584"><span class="linenos">3584</span></a><span class="k">class</span> <span class="nc">Neg</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
</span><span id="L-3585"><a href="#L-3585"><span class="linenos">3585</span></a> <span class="k">pass</span>
</span><span id="L-3586"><a href="#L-3586"><span class="linenos">3586</span></a>
</span><span id="L-3587"><a href="#L-3587"><span class="linenos">3587</span></a>
</span><span id="L-3588"><a href="#L-3588"><span class="linenos">3588</span></a><span class="k">class</span> <span class="nc">Alias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3589"><a href="#L-3589"><span class="linenos">3589</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3590"><a href="#L-3590"><span class="linenos">3590</span></a>
</span><span id="L-3591"><a href="#L-3591"><span class="linenos">3591</span></a> <span class="nd">@property</span>
</span><span id="L-3592"><a href="#L-3592"><span class="linenos">3592</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-3593"><a href="#L-3593"><span class="linenos">3593</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span><span id="L-3594"><a href="#L-3594"><span class="linenos">3594</span></a>
</span><span id="L-3595"><a href="#L-3595"><span class="linenos">3595</span></a>
</span><span id="L-3596"><a href="#L-3596"><span class="linenos">3596</span></a><span class="k">class</span> <span class="nc">Aliases</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3597"><a href="#L-3597"><span class="linenos">3597</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</span></a>
</span><span id="L-3599"><a href="#L-3599"><span class="linenos">3599</span></a> <span class="nd">@property</span>
</span><span id="L-3600"><a href="#L-3600"><span class="linenos">3600</span></a> <span class="k">def</span> <span class="nf">aliases</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="L-3601"><a href="#L-3601"><span class="linenos">3601</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span><span id="L-3602"><a href="#L-3602"><span class="linenos">3602</span></a>
</span><span id="L-3603"><a href="#L-3603"><span class="linenos">3603</span></a>
</span><span id="L-3604"><a href="#L-3604"><span class="linenos">3604</span></a><span class="k">class</span> <span class="nc">AtTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3605"><a href="#L-3605"><span class="linenos">3605</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3606"><a href="#L-3606"><span class="linenos">3606</span></a>
</span><span id="L-3607"><a href="#L-3607"><span class="linenos">3607</span></a>
</span><span id="L-3608"><a href="#L-3608"><span class="linenos">3608</span></a><span class="k">class</span> <span class="nc">Between</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3609"><a href="#L-3609"><span class="linenos">3609</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;low&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;high&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3610"><a href="#L-3610"><span class="linenos">3610</span></a>
</span><span id="L-3611"><a href="#L-3611"><span class="linenos">3611</span></a>
</span><span id="L-3612"><a href="#L-3612"><span class="linenos">3612</span></a><span class="k">class</span> <span class="nc">Bracket</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="L-3613"><a href="#L-3613"><span class="linenos">3613</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3614"><a href="#L-3614"><span class="linenos">3614</span></a>
</span><span id="L-3615"><a href="#L-3615"><span class="linenos">3615</span></a>
</span><span id="L-3616"><a href="#L-3616"><span class="linenos">3616</span></a><span class="k">class</span> <span class="nc">Distinct</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3617"><a href="#L-3617"><span class="linenos">3617</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3618"><a href="#L-3618"><span class="linenos">3618</span></a>
</span><span id="L-3619"><a href="#L-3619"><span class="linenos">3619</span></a>
</span><span id="L-3620"><a href="#L-3620"><span class="linenos">3620</span></a><span class="k">class</span> <span class="nc">In</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
</span><span id="L-3621"><a href="#L-3621"><span class="linenos">3621</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-3622"><a href="#L-3622"><span class="linenos">3622</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-3623"><a href="#L-3623"><span class="linenos">3623</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3624"><a href="#L-3624"><span class="linenos">3624</span></a> <span class="s2">&quot;query&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3625"><a href="#L-3625"><span class="linenos">3625</span></a> <span class="s2">&quot;unnest&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3626"><a href="#L-3626"><span class="linenos">3626</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3627"><a href="#L-3627"><span class="linenos">3627</span></a> <span class="s2">&quot;is_global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-3628"><a href="#L-3628"><span class="linenos">3628</span></a> <span class="p">}</span>
</span><span id="L-3629"><a href="#L-3629"><span class="linenos">3629</span></a>
</span><span id="L-3630"><a href="#L-3630"><span class="linenos">3630</span></a>
</span><span id="L-3631"><a href="#L-3631"><span class="linenos">3631</span></a><span class="k">class</span> <span class="nc">TimeUnit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3632"><a href="#L-3632"><span class="linenos">3632</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Automatically converts unit arg into a var.&quot;&quot;&quot;</span>
</span><span id="L-3633"><a href="#L-3633"><span class="linenos">3633</span></a>
</span><span id="L-3634"><a href="#L-3634"><span class="linenos">3634</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3635"><a href="#L-3635"><span class="linenos">3635</span></a>
</span><span id="L-3636"><a href="#L-3636"><span class="linenos">3636</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span>
</span><span id="L-3637"><a href="#L-3637"><span class="linenos">3637</span></a> <span class="n">unit</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;unit&quot;</span><span class="p">)</span>
</span><span id="L-3638"><a href="#L-3638"><span class="linenos">3638</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
</span><span id="L-3639"><a href="#L-3639"><span class="linenos">3639</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</span><span id="L-3640"><a href="#L-3640"><span class="linenos">3640</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span>
</span><span id="L-3641"><a href="#L-3641"><span class="linenos">3641</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
</span><span id="L-3642"><a href="#L-3642"><span class="linenos">3642</span></a>
</span><span id="L-3643"><a href="#L-3643"><span class="linenos">3643</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span>
</span><span id="L-3644"><a href="#L-3644"><span class="linenos">3644</span></a>
</span><span id="L-3645"><a href="#L-3645"><span class="linenos">3645</span></a>
</span><span id="L-3646"><a href="#L-3646"><span class="linenos">3646</span></a><span class="k">class</span> <span class="nc">Interval</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3647"><a href="#L-3647"><span class="linenos">3647</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3648"><a href="#L-3648"><span class="linenos">3648</span></a>
</span><span id="L-3649"><a href="#L-3649"><span class="linenos">3649</span></a> <span class="nd">@property</span>
</span><span id="L-3650"><a href="#L-3650"><span class="linenos">3650</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Var</span><span class="p">]:</span>
</span><span id="L-3651"><a href="#L-3651"><span class="linenos">3651</span></a> <span class="k">return</span> <span class="bp">self</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;unit&quot;</span><span class="p">)</span>
</span><span id="L-3652"><a href="#L-3652"><span class="linenos">3652</span></a>
</span><span id="L-3653"><a href="#L-3653"><span class="linenos">3653</span></a>
</span><span id="L-3654"><a href="#L-3654"><span class="linenos">3654</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3655"><a href="#L-3655"><span class="linenos">3655</span></a> <span class="k">pass</span>
</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</span></a>
</span><span id="L-3657"><a href="#L-3657"><span class="linenos">3657</span></a>
</span><span id="L-3658"><a href="#L-3658"><span class="linenos">3658</span></a><span class="k">class</span> <span class="nc">RespectNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-3659"><a href="#L-3659"><span class="linenos">3659</span></a> <span class="k">pass</span>
</span><span id="L-3660"><a href="#L-3660"><span class="linenos">3660</span></a>
</span><span id="L-3661"><a href="#L-3661"><span class="linenos">3661</span></a>
</span><span id="L-3662"><a href="#L-3662"><span class="linenos">3662</span></a><span class="c1"># Functions</span>
</span><span id="L-3663"><a href="#L-3663"><span class="linenos">3663</span></a><span class="k">class</span> <span class="nc">Func</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="L-3664"><a href="#L-3664"><span class="linenos">3664</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-3665"><a href="#L-3665"><span class="linenos">3665</span></a><span class="sd"> The base class for all function expressions.</span>
</span><span id="L-3666"><a href="#L-3666"><span class="linenos">3666</span></a>
</span><span id="L-3667"><a href="#L-3667"><span class="linenos">3667</span></a><span class="sd"> Attributes:</span>
</span><span id="L-3668"><a href="#L-3668"><span class="linenos">3668</span></a><span class="sd"> is_var_len_args (bool): if set to True the last argument defined in arg_types will be</span>
</span><span id="L-3669"><a href="#L-3669"><span class="linenos">3669</span></a><span class="sd"> treated as a variable length argument and the argument&#39;s value will be stored as a list.</span>
</span><span id="L-3670"><a href="#L-3670"><span class="linenos">3670</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span>
</span><span id="L-3671"><a href="#L-3671"><span class="linenos">3671</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span>
</span><span id="L-3672"><a href="#L-3672"><span class="linenos">3672</span></a><span class="sd"> as well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
</span><span id="L-3673"><a href="#L-3673"><span class="linenos">3673</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
</span><span id="L-3674"><a href="#L-3674"><span class="linenos">3674</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-3675"><a href="#L-3675"><span class="linenos">3675</span></a>
</span><span id="L-3676"><a href="#L-3676"><span class="linenos">3676</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="L-3677"><a href="#L-3677"><span class="linenos">3677</span></a>
</span><span id="L-3678"><a href="#L-3678"><span class="linenos">3678</span></a> <span class="nd">@classmethod</span>
</span><span id="L-3679"><a href="#L-3679"><span class="linenos">3679</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
</span><span id="L-3680"><a href="#L-3680"><span class="linenos">3680</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span>
</span><span id="L-3681"><a href="#L-3681"><span class="linenos">3681</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
</span><span id="L-3682"><a href="#L-3682"><span class="linenos">3682</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
</span><span id="L-3683"><a href="#L-3683"><span class="linenos">3683</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span>
</span><span id="L-3684"><a href="#L-3684"><span class="linenos">3684</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span>
</span><span id="L-3685"><a href="#L-3685"><span class="linenos">3685</span></a>
</span><span id="L-3686"><a href="#L-3686"><span class="linenos">3686</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span>
</span><span id="L-3687"><a href="#L-3687"><span class="linenos">3687</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span>
</span><span id="L-3688"><a href="#L-3688"><span class="linenos">3688</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-3689"><a href="#L-3689"><span class="linenos">3689</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span>
</span><span id="L-3690"><a href="#L-3690"><span class="linenos">3690</span></a>
</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span>
</span><span id="L-3692"><a href="#L-3692"><span class="linenos">3692</span></a>
</span><span id="L-3693"><a href="#L-3693"><span class="linenos">3693</span></a> <span class="nd">@classmethod</span>
</span><span id="L-3694"><a href="#L-3694"><span class="linenos">3694</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
</span><span id="L-3695"><a href="#L-3695"><span class="linenos">3695</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span>
</span><span id="L-3696"><a href="#L-3696"><span class="linenos">3696</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
</span><span id="L-3697"><a href="#L-3697"><span class="linenos">3697</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
</span><span id="L-3698"><a href="#L-3698"><span class="linenos">3698</span></a> <span class="p">)</span>
</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</span></a> <span class="k">if</span> <span class="s2">&quot;_sql_names&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span>
</span><span id="L-3700"><a href="#L-3700"><span class="linenos">3700</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span>
</span><span id="L-3701"><a href="#L-3701"><span class="linenos">3701</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span>
</span><span id="L-3702"><a href="#L-3702"><span class="linenos">3702</span></a>
</span><span id="L-3703"><a href="#L-3703"><span class="linenos">3703</span></a> <span class="nd">@classmethod</span>
</span><span id="L-3704"><a href="#L-3704"><span class="linenos">3704</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
</span><span id="L-3705"><a href="#L-3705"><span class="linenos">3705</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="L-3706"><a href="#L-3706"><span class="linenos">3706</span></a>
</span><span id="L-3707"><a href="#L-3707"><span class="linenos">3707</span></a> <span class="nd">@classmethod</span>
</span><span id="L-3708"><a href="#L-3708"><span class="linenos">3708</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
</span><span id="L-3709"><a href="#L-3709"><span class="linenos">3709</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
</span><span id="L-3710"><a href="#L-3710"><span class="linenos">3710</span></a>
</span><span id="L-3711"><a href="#L-3711"><span class="linenos">3711</span></a>
</span><span id="L-3712"><a href="#L-3712"><span class="linenos">3712</span></a><span class="k">class</span> <span class="nc">AggFunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3713"><a href="#L-3713"><span class="linenos">3713</span></a> <span class="k">pass</span>
</span><span id="L-3714"><a href="#L-3714"><span class="linenos">3714</span></a>
</span><span id="L-3715"><a href="#L-3715"><span class="linenos">3715</span></a>
</span><span id="L-3716"><a href="#L-3716"><span class="linenos">3716</span></a><span class="k">class</span> <span class="nc">ParameterizedAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-3717"><a href="#L-3717"><span class="linenos">3717</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3718"><a href="#L-3718"><span class="linenos">3718</span></a>
</span><span id="L-3719"><a href="#L-3719"><span class="linenos">3719</span></a>
</span><span id="L-3720"><a href="#L-3720"><span class="linenos">3720</span></a><span class="k">class</span> <span class="nc">Abs</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3721"><a href="#L-3721"><span class="linenos">3721</span></a> <span class="k">pass</span>
</span><span id="L-3722"><a href="#L-3722"><span class="linenos">3722</span></a>
</span><span id="L-3723"><a href="#L-3723"><span class="linenos">3723</span></a>
</span><span id="L-3724"><a href="#L-3724"><span class="linenos">3724</span></a><span class="k">class</span> <span class="nc">Anonymous</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3725"><a href="#L-3725"><span class="linenos">3725</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3726"><a href="#L-3726"><span class="linenos">3726</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3727"><a href="#L-3727"><span class="linenos">3727</span></a>
</span><span id="L-3728"><a href="#L-3728"><span class="linenos">3728</span></a>
</span><span id="L-3729"><a href="#L-3729"><span class="linenos">3729</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/hll</span>
</span><span id="L-3730"><a href="#L-3730"><span class="linenos">3730</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_HLL_function.html</span>
</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</span></a><span class="k">class</span> <span class="nc">Hll</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-3732"><a href="#L-3732"><span class="linenos">3732</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3733"><a href="#L-3733"><span class="linenos">3733</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3734"><a href="#L-3734"><span class="linenos">3734</span></a>
</span><span id="L-3735"><a href="#L-3735"><span class="linenos">3735</span></a>
</span><span id="L-3736"><a href="#L-3736"><span class="linenos">3736</span></a><span class="k">class</span> <span class="nc">ApproxDistinct</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-3737"><a href="#L-3737"><span class="linenos">3737</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3738"><a href="#L-3738"><span class="linenos">3738</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;APPROX_DISTINCT&quot;</span><span class="p">,</span> <span class="s2">&quot;APPROX_COUNT_DISTINCT&quot;</span><span class="p">]</span>
</span><span id="L-3739"><a href="#L-3739"><span class="linenos">3739</span></a>
</span><span id="L-3740"><a href="#L-3740"><span class="linenos">3740</span></a>
</span><span id="L-3741"><a href="#L-3741"><span class="linenos">3741</span></a><span class="k">class</span> <span class="nc">Array</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3742"><a href="#L-3742"><span class="linenos">3742</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3743"><a href="#L-3743"><span class="linenos">3743</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3744"><a href="#L-3744"><span class="linenos">3744</span></a>
</span><span id="L-3745"><a href="#L-3745"><span class="linenos">3745</span></a>
</span><span id="L-3746"><a href="#L-3746"><span class="linenos">3746</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_char</span>
</span><span id="L-3747"><a href="#L-3747"><span class="linenos">3747</span></a><span class="k">class</span> <span class="nc">ToChar</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3748"><a href="#L-3748"><span class="linenos">3748</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3749"><a href="#L-3749"><span class="linenos">3749</span></a>
</span><span id="L-3750"><a href="#L-3750"><span class="linenos">3750</span></a>
</span><span id="L-3751"><a href="#L-3751"><span class="linenos">3751</span></a><span class="k">class</span> <span class="nc">GenerateSeries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3752"><a href="#L-3752"><span class="linenos">3752</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;step&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3753"><a href="#L-3753"><span class="linenos">3753</span></a>
</span><span id="L-3754"><a href="#L-3754"><span class="linenos">3754</span></a>
</span><span id="L-3755"><a href="#L-3755"><span class="linenos">3755</span></a><span class="k">class</span> <span class="nc">ArrayAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-3756"><a href="#L-3756"><span class="linenos">3756</span></a> <span class="k">pass</span>
</span><span id="L-3757"><a href="#L-3757"><span class="linenos">3757</span></a>
</span><span id="L-3758"><a href="#L-3758"><span class="linenos">3758</span></a>
</span><span id="L-3759"><a href="#L-3759"><span class="linenos">3759</span></a><span class="k">class</span> <span class="nc">ArrayAll</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3760"><a href="#L-3760"><span class="linenos">3760</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3761"><a href="#L-3761"><span class="linenos">3761</span></a>
</span><span id="L-3762"><a href="#L-3762"><span class="linenos">3762</span></a>
</span><span id="L-3763"><a href="#L-3763"><span class="linenos">3763</span></a><span class="k">class</span> <span class="nc">ArrayAny</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3764"><a href="#L-3764"><span class="linenos">3764</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3765"><a href="#L-3765"><span class="linenos">3765</span></a>
</span><span id="L-3766"><a href="#L-3766"><span class="linenos">3766</span></a>
</span><span id="L-3767"><a href="#L-3767"><span class="linenos">3767</span></a><span class="k">class</span> <span class="nc">ArrayConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3768"><a href="#L-3768"><span class="linenos">3768</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3769"><a href="#L-3769"><span class="linenos">3769</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3770"><a href="#L-3770"><span class="linenos">3770</span></a>
</span><span id="L-3771"><a href="#L-3771"><span class="linenos">3771</span></a>
</span><span id="L-3772"><a href="#L-3772"><span class="linenos">3772</span></a><span class="k">class</span> <span class="nc">ArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
</span><span id="L-3773"><a href="#L-3773"><span class="linenos">3773</span></a> <span class="k">pass</span>
</span><span id="L-3774"><a href="#L-3774"><span class="linenos">3774</span></a>
</span><span id="L-3775"><a href="#L-3775"><span class="linenos">3775</span></a>
</span><span id="L-3776"><a href="#L-3776"><span class="linenos">3776</span></a><span class="k">class</span> <span class="nc">ArrayContained</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3777"><a href="#L-3777"><span class="linenos">3777</span></a> <span class="k">pass</span>
</span><span id="L-3778"><a href="#L-3778"><span class="linenos">3778</span></a>
</span><span id="L-3779"><a href="#L-3779"><span class="linenos">3779</span></a>
</span><span id="L-3780"><a href="#L-3780"><span class="linenos">3780</span></a><span class="k">class</span> <span class="nc">ArrayFilter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3781"><a href="#L-3781"><span class="linenos">3781</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3782"><a href="#L-3782"><span class="linenos">3782</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;FILTER&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_FILTER&quot;</span><span class="p">]</span>
</span><span id="L-3783"><a href="#L-3783"><span class="linenos">3783</span></a>
</span><span id="L-3784"><a href="#L-3784"><span class="linenos">3784</span></a>
</span><span id="L-3785"><a href="#L-3785"><span class="linenos">3785</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3786"><a href="#L-3786"><span class="linenos">3786</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3787"><a href="#L-3787"><span class="linenos">3787</span></a>
</span><span id="L-3788"><a href="#L-3788"><span class="linenos">3788</span></a>
</span><span id="L-3789"><a href="#L-3789"><span class="linenos">3789</span></a><span class="k">class</span> <span class="nc">ArraySize</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3790"><a href="#L-3790"><span class="linenos">3790</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3791"><a href="#L-3791"><span class="linenos">3791</span></a>
</span><span id="L-3792"><a href="#L-3792"><span class="linenos">3792</span></a>
</span><span id="L-3793"><a href="#L-3793"><span class="linenos">3793</span></a><span class="k">class</span> <span class="nc">ArraySort</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3794"><a href="#L-3794"><span class="linenos">3794</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3795"><a href="#L-3795"><span class="linenos">3795</span></a>
</span><span id="L-3796"><a href="#L-3796"><span class="linenos">3796</span></a>
</span><span id="L-3797"><a href="#L-3797"><span class="linenos">3797</span></a><span class="k">class</span> <span class="nc">ArraySum</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3798"><a href="#L-3798"><span class="linenos">3798</span></a> <span class="k">pass</span>
</span><span id="L-3799"><a href="#L-3799"><span class="linenos">3799</span></a>
</span><span id="L-3800"><a href="#L-3800"><span class="linenos">3800</span></a>
</span><span id="L-3801"><a href="#L-3801"><span class="linenos">3801</span></a><span class="k">class</span> <span class="nc">ArrayUnionAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-3802"><a href="#L-3802"><span class="linenos">3802</span></a> <span class="k">pass</span>
</span><span id="L-3803"><a href="#L-3803"><span class="linenos">3803</span></a>
</span><span id="L-3804"><a href="#L-3804"><span class="linenos">3804</span></a>
</span><span id="L-3805"><a href="#L-3805"><span class="linenos">3805</span></a><span class="k">class</span> <span class="nc">Avg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-3806"><a href="#L-3806"><span class="linenos">3806</span></a> <span class="k">pass</span>
</span><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</span></a>
</span><span id="L-3808"><a href="#L-3808"><span class="linenos">3808</span></a>
</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-3810"><a href="#L-3810"><span class="linenos">3810</span></a> <span class="k">pass</span>
</span><span id="L-3811"><a href="#L-3811"><span class="linenos">3811</span></a>
</span><span id="L-3812"><a href="#L-3812"><span class="linenos">3812</span></a>
</span><span id="L-3813"><a href="#L-3813"><span class="linenos">3813</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3814"><a href="#L-3814"><span class="linenos">3814</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;ifs&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3815"><a href="#L-3815"><span class="linenos">3815</span></a>
</span><span id="L-3816"><a href="#L-3816"><span class="linenos">3816</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
</span><span id="L-3817"><a href="#L-3817"><span class="linenos">3817</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="L-3818"><a href="#L-3818"><span class="linenos">3818</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
</span><span id="L-3819"><a href="#L-3819"><span class="linenos">3819</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
</span><span id="L-3820"><a href="#L-3820"><span class="linenos">3820</span></a> <span class="n">If</span><span class="p">(</span>
</span><span id="L-3821"><a href="#L-3821"><span class="linenos">3821</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="L-3822"><a href="#L-3822"><span class="linenos">3822</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="L-3823"><a href="#L-3823"><span class="linenos">3823</span></a> <span class="p">),</span>
</span><span id="L-3824"><a href="#L-3824"><span class="linenos">3824</span></a> <span class="p">)</span>
</span><span id="L-3825"><a href="#L-3825"><span class="linenos">3825</span></a> <span class="k">return</span> <span class="n">instance</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="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
</span><span id="L-3828"><a href="#L-3828"><span class="linenos">3828</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="L-3829"><a href="#L-3829"><span class="linenos">3829</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span><span id="L-3830"><a href="#L-3830"><span class="linenos">3830</span></a> <span class="k">return</span> <span class="n">instance</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><span id="L-3833"><a href="#L-3833"><span class="linenos">3833</span></a><span class="k">class</span> <span class="nc">Cast</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3834"><a href="#L-3834"><span class="linenos">3834</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3835"><a href="#L-3835"><span class="linenos">3835</span></a>
</span><span id="L-3836"><a href="#L-3836"><span class="linenos">3836</span></a> <span class="nd">@property</span>
</span><span id="L-3837"><a href="#L-3837"><span class="linenos">3837</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-3838"><a href="#L-3838"><span class="linenos">3838</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-3839"><a href="#L-3839"><span class="linenos">3839</span></a>
</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</span></a> <span class="nd">@property</span>
</span><span id="L-3841"><a href="#L-3841"><span class="linenos">3841</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
</span><span id="L-3842"><a href="#L-3842"><span class="linenos">3842</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;to&quot;</span><span class="p">]</span>
</span><span id="L-3843"><a href="#L-3843"><span class="linenos">3843</span></a>
</span><span id="L-3844"><a href="#L-3844"><span class="linenos">3844</span></a> <span class="nd">@property</span>
</span><span id="L-3845"><a href="#L-3845"><span class="linenos">3845</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-3846"><a href="#L-3846"><span class="linenos">3846</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-3847"><a href="#L-3847"><span class="linenos">3847</span></a>
</span><span id="L-3848"><a href="#L-3848"><span class="linenos">3848</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="L-3849"><a href="#L-3849"><span class="linenos">3849</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
</span><span id="L-3850"><a href="#L-3850"><span class="linenos">3850</span></a>
</span><span id="L-3851"><a href="#L-3851"><span class="linenos">3851</span></a>
</span><span id="L-3852"><a href="#L-3852"><span class="linenos">3852</span></a><span class="k">class</span> <span class="nc">CastToStrType</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3853"><a href="#L-3853"><span class="linenos">3853</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3854"><a href="#L-3854"><span class="linenos">3854</span></a>
</span><span id="L-3855"><a href="#L-3855"><span class="linenos">3855</span></a>
</span><span id="L-3856"><a href="#L-3856"><span class="linenos">3856</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-3857"><a href="#L-3857"><span class="linenos">3857</span></a> <span class="k">pass</span>
</span><span id="L-3858"><a href="#L-3858"><span class="linenos">3858</span></a>
</span><span id="L-3859"><a href="#L-3859"><span class="linenos">3859</span></a>
</span><span id="L-3860"><a href="#L-3860"><span class="linenos">3860</span></a><span class="k">class</span> <span class="nc">TryCast</span><span class="p">(</span><span class="n">Cast</span><span class="p">):</span>
</span><span id="L-3861"><a href="#L-3861"><span class="linenos">3861</span></a> <span class="k">pass</span>
</span><span id="L-3862"><a href="#L-3862"><span class="linenos">3862</span></a>
</span><span id="L-3863"><a href="#L-3863"><span class="linenos">3863</span></a>
</span><span id="L-3864"><a href="#L-3864"><span class="linenos">3864</span></a><span class="k">class</span> <span class="nc">Ceil</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3865"><a href="#L-3865"><span class="linenos">3865</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3866"><a href="#L-3866"><span class="linenos">3866</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CEIL&quot;</span><span class="p">,</span> <span class="s2">&quot;CEILING&quot;</span><span class="p">]</span>
</span><span id="L-3867"><a href="#L-3867"><span class="linenos">3867</span></a>
</span><span id="L-3868"><a href="#L-3868"><span class="linenos">3868</span></a>
</span><span id="L-3869"><a href="#L-3869"><span class="linenos">3869</span></a><span class="k">class</span> <span class="nc">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3870"><a href="#L-3870"><span class="linenos">3870</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3871"><a href="#L-3871"><span class="linenos">3871</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3872"><a href="#L-3872"><span class="linenos">3872</span></a>
</span><span id="L-3873"><a href="#L-3873"><span class="linenos">3873</span></a>
</span><span id="L-3874"><a href="#L-3874"><span class="linenos">3874</span></a><span class="k">class</span> <span class="nc">Concat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3875"><a href="#L-3875"><span class="linenos">3875</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3876"><a href="#L-3876"><span class="linenos">3876</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-3877"><a href="#L-3877"><span class="linenos">3877</span></a>
</span><span id="L-3878"><a href="#L-3878"><span class="linenos">3878</span></a>
</span><span id="L-3879"><a href="#L-3879"><span class="linenos">3879</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span>
</span><span id="L-3880"><a href="#L-3880"><span class="linenos">3880</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CONCAT_WS&quot;</span><span class="p">]</span>
</span><span id="L-3881"><a href="#L-3881"><span class="linenos">3881</span></a>
</span><span id="L-3882"><a href="#L-3882"><span class="linenos">3882</span></a>
</span><span id="L-3883"><a href="#L-3883"><span class="linenos">3883</span></a><span class="k">class</span> <span class="nc">Count</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-3884"><a href="#L-3884"><span class="linenos">3884</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3885"><a href="#L-3885"><span class="linenos">3885</span></a>
</span><span id="L-3886"><a href="#L-3886"><span class="linenos">3886</span></a>
</span><span id="L-3887"><a href="#L-3887"><span class="linenos">3887</span></a><span class="k">class</span> <span class="nc">CountIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-3888"><a href="#L-3888"><span class="linenos">3888</span></a> <span class="k">pass</span>
</span><span id="L-3889"><a href="#L-3889"><span class="linenos">3889</span></a>
</span><span id="L-3890"><a href="#L-3890"><span class="linenos">3890</span></a>
</span><span id="L-3891"><a href="#L-3891"><span class="linenos">3891</span></a><span class="k">class</span> <span class="nc">CurrentDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3892"><a href="#L-3892"><span class="linenos">3892</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3893"><a href="#L-3893"><span class="linenos">3893</span></a>
</span><span id="L-3894"><a href="#L-3894"><span class="linenos">3894</span></a>
</span><span id="L-3895"><a href="#L-3895"><span class="linenos">3895</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3896"><a href="#L-3896"><span class="linenos">3896</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3897"><a href="#L-3897"><span class="linenos">3897</span></a>
</span><span id="L-3898"><a href="#L-3898"><span class="linenos">3898</span></a>
</span><span id="L-3899"><a href="#L-3899"><span class="linenos">3899</span></a><span class="k">class</span> <span class="nc">CurrentTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3900"><a href="#L-3900"><span class="linenos">3900</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3901"><a href="#L-3901"><span class="linenos">3901</span></a>
</span><span id="L-3902"><a href="#L-3902"><span class="linenos">3902</span></a>
</span><span id="L-3903"><a href="#L-3903"><span class="linenos">3903</span></a><span class="k">class</span> <span class="nc">CurrentTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3904"><a href="#L-3904"><span class="linenos">3904</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3905"><a href="#L-3905"><span class="linenos">3905</span></a>
</span><span id="L-3906"><a href="#L-3906"><span class="linenos">3906</span></a>
</span><span id="L-3907"><a href="#L-3907"><span class="linenos">3907</span></a><span class="k">class</span> <span class="nc">CurrentUser</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3908"><a href="#L-3908"><span class="linenos">3908</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3909"><a href="#L-3909"><span class="linenos">3909</span></a>
</span><span id="L-3910"><a href="#L-3910"><span class="linenos">3910</span></a>
</span><span id="L-3911"><a href="#L-3911"><span class="linenos">3911</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3912"><a href="#L-3912"><span class="linenos">3912</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3913"><a href="#L-3913"><span class="linenos">3913</span></a>
</span><span id="L-3914"><a href="#L-3914"><span class="linenos">3914</span></a>
</span><span id="L-3915"><a href="#L-3915"><span class="linenos">3915</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3916"><a href="#L-3916"><span class="linenos">3916</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3917"><a href="#L-3917"><span class="linenos">3917</span></a>
</span><span id="L-3918"><a href="#L-3918"><span class="linenos">3918</span></a>
</span><span id="L-3919"><a href="#L-3919"><span class="linenos">3919</span></a><span class="k">class</span> <span class="nc">DateDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3920"><a href="#L-3920"><span class="linenos">3920</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEDIFF&quot;</span><span class="p">,</span> <span class="s2">&quot;DATE_DIFF&quot;</span><span class="p">]</span>
</span><span id="L-3921"><a href="#L-3921"><span class="linenos">3921</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3922"><a href="#L-3922"><span class="linenos">3922</span></a>
</span><span id="L-3923"><a href="#L-3923"><span class="linenos">3923</span></a>
</span><span id="L-3924"><a href="#L-3924"><span class="linenos">3924</span></a><span class="k">class</span> <span class="nc">DateTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3925"><a href="#L-3925"><span class="linenos">3925</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3926"><a href="#L-3926"><span class="linenos">3926</span></a>
</span><span id="L-3927"><a href="#L-3927"><span class="linenos">3927</span></a>
</span><span id="L-3928"><a href="#L-3928"><span class="linenos">3928</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3929"><a href="#L-3929"><span class="linenos">3929</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3930"><a href="#L-3930"><span class="linenos">3930</span></a>
</span><span id="L-3931"><a href="#L-3931"><span class="linenos">3931</span></a>
</span><span id="L-3932"><a href="#L-3932"><span class="linenos">3932</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3933"><a href="#L-3933"><span class="linenos">3933</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3934"><a href="#L-3934"><span class="linenos">3934</span></a>
</span><span id="L-3935"><a href="#L-3935"><span class="linenos">3935</span></a>
</span><span id="L-3936"><a href="#L-3936"><span class="linenos">3936</span></a><span class="k">class</span> <span class="nc">DatetimeDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3937"><a href="#L-3937"><span class="linenos">3937</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3938"><a href="#L-3938"><span class="linenos">3938</span></a>
</span><span id="L-3939"><a href="#L-3939"><span class="linenos">3939</span></a>
</span><span id="L-3940"><a href="#L-3940"><span class="linenos">3940</span></a><span class="k">class</span> <span class="nc">DatetimeTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3941"><a href="#L-3941"><span class="linenos">3941</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3942"><a href="#L-3942"><span class="linenos">3942</span></a>
</span><span id="L-3943"><a href="#L-3943"><span class="linenos">3943</span></a>
</span><span id="L-3944"><a href="#L-3944"><span class="linenos">3944</span></a><span class="k">class</span> <span class="nc">DayOfWeek</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3945"><a href="#L-3945"><span class="linenos">3945</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_WEEK&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFWEEK&quot;</span><span class="p">]</span>
</span><span id="L-3946"><a href="#L-3946"><span class="linenos">3946</span></a>
</span><span id="L-3947"><a href="#L-3947"><span class="linenos">3947</span></a>
</span><span id="L-3948"><a href="#L-3948"><span class="linenos">3948</span></a><span class="k">class</span> <span class="nc">DayOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3949"><a href="#L-3949"><span class="linenos">3949</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_MONTH&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFMONTH&quot;</span><span class="p">]</span>
</span><span id="L-3950"><a href="#L-3950"><span class="linenos">3950</span></a>
</span><span id="L-3951"><a href="#L-3951"><span class="linenos">3951</span></a>
</span><span id="L-3952"><a href="#L-3952"><span class="linenos">3952</span></a><span class="k">class</span> <span class="nc">DayOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3953"><a href="#L-3953"><span class="linenos">3953</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFYEAR&quot;</span><span class="p">]</span>
</span><span id="L-3954"><a href="#L-3954"><span class="linenos">3954</span></a>
</span><span id="L-3955"><a href="#L-3955"><span class="linenos">3955</span></a>
</span><span id="L-3956"><a href="#L-3956"><span class="linenos">3956</span></a><span class="k">class</span> <span class="nc">WeekOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3957"><a href="#L-3957"><span class="linenos">3957</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;WEEK_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;WEEKOFYEAR&quot;</span><span class="p">]</span>
</span><span id="L-3958"><a href="#L-3958"><span class="linenos">3958</span></a>
</span><span id="L-3959"><a href="#L-3959"><span class="linenos">3959</span></a>
</span><span id="L-3960"><a href="#L-3960"><span class="linenos">3960</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3961"><a href="#L-3961"><span class="linenos">3961</span></a> <span class="k">pass</span>
</span><span id="L-3962"><a href="#L-3962"><span class="linenos">3962</span></a>
</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</span></a>
</span><span id="L-3964"><a href="#L-3964"><span class="linenos">3964</span></a><span class="k">class</span> <span class="nc">Extract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-3965"><a href="#L-3965"><span class="linenos">3965</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-3966"><a href="#L-3966"><span class="linenos">3966</span></a>
</span><span id="L-3967"><a href="#L-3967"><span class="linenos">3967</span></a>
</span><span id="L-3968"><a href="#L-3968"><span class="linenos">3968</span></a><span class="k">class</span> <span class="nc">TimestampAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3969"><a href="#L-3969"><span class="linenos">3969</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3970"><a href="#L-3970"><span class="linenos">3970</span></a>
</span><span id="L-3971"><a href="#L-3971"><span class="linenos">3971</span></a>
</span><span id="L-3972"><a href="#L-3972"><span class="linenos">3972</span></a><span class="k">class</span> <span class="nc">TimestampSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3973"><a href="#L-3973"><span class="linenos">3973</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3974"><a href="#L-3974"><span class="linenos">3974</span></a>
</span><span id="L-3975"><a href="#L-3975"><span class="linenos">3975</span></a>
</span><span id="L-3976"><a href="#L-3976"><span class="linenos">3976</span></a><span class="k">class</span> <span class="nc">TimestampDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3977"><a href="#L-3977"><span class="linenos">3977</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3978"><a href="#L-3978"><span class="linenos">3978</span></a>
</span><span id="L-3979"><a href="#L-3979"><span class="linenos">3979</span></a>
</span><span id="L-3980"><a href="#L-3980"><span class="linenos">3980</span></a><span class="k">class</span> <span class="nc">TimestampTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3981"><a href="#L-3981"><span class="linenos">3981</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3982"><a href="#L-3982"><span class="linenos">3982</span></a>
</span><span id="L-3983"><a href="#L-3983"><span class="linenos">3983</span></a>
</span><span id="L-3984"><a href="#L-3984"><span class="linenos">3984</span></a><span class="k">class</span> <span class="nc">TimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3985"><a href="#L-3985"><span class="linenos">3985</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3986"><a href="#L-3986"><span class="linenos">3986</span></a>
</span><span id="L-3987"><a href="#L-3987"><span class="linenos">3987</span></a>
</span><span id="L-3988"><a href="#L-3988"><span class="linenos">3988</span></a><span class="k">class</span> <span class="nc">TimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3989"><a href="#L-3989"><span class="linenos">3989</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3990"><a href="#L-3990"><span class="linenos">3990</span></a>
</span><span id="L-3991"><a href="#L-3991"><span class="linenos">3991</span></a>
</span><span id="L-3992"><a href="#L-3992"><span class="linenos">3992</span></a><span class="k">class</span> <span class="nc">TimeDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3993"><a href="#L-3993"><span class="linenos">3993</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3994"><a href="#L-3994"><span class="linenos">3994</span></a>
</span><span id="L-3995"><a href="#L-3995"><span class="linenos">3995</span></a>
</span><span id="L-3996"><a href="#L-3996"><span class="linenos">3996</span></a><span class="k">class</span> <span class="nc">TimeTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-3997"><a href="#L-3997"><span class="linenos">3997</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-3998"><a href="#L-3998"><span class="linenos">3998</span></a>
</span><span id="L-3999"><a href="#L-3999"><span class="linenos">3999</span></a>
</span><span id="L-4000"><a href="#L-4000"><span class="linenos">4000</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4001"><a href="#L-4001"><span class="linenos">4001</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
</span><span id="L-4002"><a href="#L-4002"><span class="linenos">4002</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;day&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4003"><a href="#L-4003"><span class="linenos">4003</span></a>
</span><span id="L-4004"><a href="#L-4004"><span class="linenos">4004</span></a>
</span><span id="L-4005"><a href="#L-4005"><span class="linenos">4005</span></a><span class="k">class</span> <span class="nc">DateStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4006"><a href="#L-4006"><span class="linenos">4006</span></a> <span class="k">pass</span>
</span><span id="L-4007"><a href="#L-4007"><span class="linenos">4007</span></a>
</span><span id="L-4008"><a href="#L-4008"><span class="linenos">4008</span></a>
</span><span id="L-4009"><a href="#L-4009"><span class="linenos">4009</span></a><span class="k">class</span> <span class="nc">DateToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4010"><a href="#L-4010"><span class="linenos">4010</span></a> <span class="k">pass</span>
</span><span id="L-4011"><a href="#L-4011"><span class="linenos">4011</span></a>
</span><span id="L-4012"><a href="#L-4012"><span class="linenos">4012</span></a>
</span><span id="L-4013"><a href="#L-4013"><span class="linenos">4013</span></a><span class="k">class</span> <span class="nc">DateToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4014"><a href="#L-4014"><span class="linenos">4014</span></a> <span class="k">pass</span>
</span><span id="L-4015"><a href="#L-4015"><span class="linenos">4015</span></a>
</span><span id="L-4016"><a href="#L-4016"><span class="linenos">4016</span></a>
</span><span id="L-4017"><a href="#L-4017"><span class="linenos">4017</span></a><span class="k">class</span> <span class="nc">Day</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4018"><a href="#L-4018"><span class="linenos">4018</span></a> <span class="k">pass</span>
</span><span id="L-4019"><a href="#L-4019"><span class="linenos">4019</span></a>
</span><span id="L-4020"><a href="#L-4020"><span class="linenos">4020</span></a>
</span><span id="L-4021"><a href="#L-4021"><span class="linenos">4021</span></a><span class="k">class</span> <span class="nc">Decode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4022"><a href="#L-4022"><span class="linenos">4022</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;replace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4023"><a href="#L-4023"><span class="linenos">4023</span></a>
</span><span id="L-4024"><a href="#L-4024"><span class="linenos">4024</span></a>
</span><span id="L-4025"><a href="#L-4025"><span class="linenos">4025</span></a><span class="k">class</span> <span class="nc">DiToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4026"><a href="#L-4026"><span class="linenos">4026</span></a> <span class="k">pass</span>
</span><span id="L-4027"><a href="#L-4027"><span class="linenos">4027</span></a>
</span><span id="L-4028"><a href="#L-4028"><span class="linenos">4028</span></a>
</span><span id="L-4029"><a href="#L-4029"><span class="linenos">4029</span></a><span class="k">class</span> <span class="nc">Encode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4030"><a href="#L-4030"><span class="linenos">4030</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4031"><a href="#L-4031"><span class="linenos">4031</span></a>
</span><span id="L-4032"><a href="#L-4032"><span class="linenos">4032</span></a>
</span><span id="L-4033"><a href="#L-4033"><span class="linenos">4033</span></a><span class="k">class</span> <span class="nc">Exp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4034"><a href="#L-4034"><span class="linenos">4034</span></a> <span class="k">pass</span>
</span><span id="L-4035"><a href="#L-4035"><span class="linenos">4035</span></a>
</span><span id="L-4036"><a href="#L-4036"><span class="linenos">4036</span></a>
</span><span id="L-4037"><a href="#L-4037"><span class="linenos">4037</span></a><span class="k">class</span> <span class="nc">Explode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4038"><a href="#L-4038"><span class="linenos">4038</span></a> <span class="k">pass</span>
</span><span id="L-4039"><a href="#L-4039"><span class="linenos">4039</span></a>
</span><span id="L-4040"><a href="#L-4040"><span class="linenos">4040</span></a>
</span><span id="L-4041"><a href="#L-4041"><span class="linenos">4041</span></a><span class="k">class</span> <span class="nc">Floor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4042"><a href="#L-4042"><span class="linenos">4042</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4043"><a href="#L-4043"><span class="linenos">4043</span></a>
</span><span id="L-4044"><a href="#L-4044"><span class="linenos">4044</span></a>
</span><span id="L-4045"><a href="#L-4045"><span class="linenos">4045</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4046"><a href="#L-4046"><span class="linenos">4046</span></a> <span class="k">pass</span>
</span><span id="L-4047"><a href="#L-4047"><span class="linenos">4047</span></a>
</span><span id="L-4048"><a href="#L-4048"><span class="linenos">4048</span></a>
</span><span id="L-4049"><a href="#L-4049"><span class="linenos">4049</span></a><span class="k">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4050"><a href="#L-4050"><span class="linenos">4050</span></a> <span class="k">pass</span>
</span><span id="L-4051"><a href="#L-4051"><span class="linenos">4051</span></a>
</span><span id="L-4052"><a href="#L-4052"><span class="linenos">4052</span></a>
</span><span id="L-4053"><a href="#L-4053"><span class="linenos">4053</span></a><span class="k">class</span> <span class="nc">Greatest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4054"><a href="#L-4054"><span class="linenos">4054</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4055"><a href="#L-4055"><span class="linenos">4055</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4056"><a href="#L-4056"><span class="linenos">4056</span></a>
</span><span id="L-4057"><a href="#L-4057"><span class="linenos">4057</span></a>
</span><span id="L-4058"><a href="#L-4058"><span class="linenos">4058</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4059"><a href="#L-4059"><span class="linenos">4059</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;separator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4060"><a href="#L-4060"><span class="linenos">4060</span></a>
</span><span id="L-4061"><a href="#L-4061"><span class="linenos">4061</span></a>
</span><span id="L-4062"><a href="#L-4062"><span class="linenos">4062</span></a><span class="k">class</span> <span class="nc">Hex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4063"><a href="#L-4063"><span class="linenos">4063</span></a> <span class="k">pass</span>
</span><span id="L-4064"><a href="#L-4064"><span class="linenos">4064</span></a>
</span><span id="L-4065"><a href="#L-4065"><span class="linenos">4065</span></a>
</span><span id="L-4066"><a href="#L-4066"><span class="linenos">4066</span></a><span class="k">class</span> <span class="nc">If</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4067"><a href="#L-4067"><span class="linenos">4067</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4068"><a href="#L-4068"><span class="linenos">4068</span></a>
</span><span id="L-4069"><a href="#L-4069"><span class="linenos">4069</span></a>
</span><span id="L-4070"><a href="#L-4070"><span class="linenos">4070</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4071"><a href="#L-4071"><span class="linenos">4071</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4072"><a href="#L-4072"><span class="linenos">4072</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
</span><span id="L-4073"><a href="#L-4073"><span class="linenos">4073</span></a>
</span><span id="L-4074"><a href="#L-4074"><span class="linenos">4074</span></a>
</span><span id="L-4075"><a href="#L-4075"><span class="linenos">4075</span></a><span class="k">class</span> <span class="nc">Initcap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4076"><a href="#L-4076"><span class="linenos">4076</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4077"><a href="#L-4077"><span class="linenos">4077</span></a>
</span><span id="L-4078"><a href="#L-4078"><span class="linenos">4078</span></a>
</span><span id="L-4079"><a href="#L-4079"><span class="linenos">4079</span></a><span class="k">class</span> <span class="nc">JSONKeyValue</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-4080"><a href="#L-4080"><span class="linenos">4080</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4081"><a href="#L-4081"><span class="linenos">4081</span></a>
</span><span id="L-4082"><a href="#L-4082"><span class="linenos">4082</span></a>
</span><span id="L-4083"><a href="#L-4083"><span class="linenos">4083</span></a><span class="k">class</span> <span class="nc">JSONObject</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4084"><a href="#L-4084"><span class="linenos">4084</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-4085"><a href="#L-4085"><span class="linenos">4085</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4086"><a href="#L-4086"><span class="linenos">4086</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4087"><a href="#L-4087"><span class="linenos">4087</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4088"><a href="#L-4088"><span class="linenos">4088</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4089"><a href="#L-4089"><span class="linenos">4089</span></a> <span class="s2">&quot;format_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4090"><a href="#L-4090"><span class="linenos">4090</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4091"><a href="#L-4091"><span class="linenos">4091</span></a> <span class="p">}</span>
</span><span id="L-4092"><a href="#L-4092"><span class="linenos">4092</span></a>
</span><span id="L-4093"><a href="#L-4093"><span class="linenos">4093</span></a>
</span><span id="L-4094"><a href="#L-4094"><span class="linenos">4094</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-4095"><a href="#L-4095"><span class="linenos">4095</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4096"><a href="#L-4096"><span class="linenos">4096</span></a>
</span><span id="L-4097"><a href="#L-4097"><span class="linenos">4097</span></a>
</span><span id="L-4098"><a href="#L-4098"><span class="linenos">4098</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4099"><a href="#L-4099"><span class="linenos">4099</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4100"><a href="#L-4100"><span class="linenos">4100</span></a>
</span><span id="L-4101"><a href="#L-4101"><span class="linenos">4101</span></a>
</span><span id="L-4102"><a href="#L-4102"><span class="linenos">4102</span></a><span class="k">class</span> <span class="nc">JSONBContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="L-4103"><a href="#L-4103"><span class="linenos">4103</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_CONTAINS&quot;</span><span class="p">]</span>
</span><span id="L-4104"><a href="#L-4104"><span class="linenos">4104</span></a>
</span><span id="L-4105"><a href="#L-4105"><span class="linenos">4105</span></a>
</span><span id="L-4106"><a href="#L-4106"><span class="linenos">4106</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
</span><span id="L-4107"><a href="#L-4107"><span class="linenos">4107</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT&quot;</span><span class="p">]</span>
</span><span id="L-4108"><a href="#L-4108"><span class="linenos">4108</span></a>
</span><span id="L-4109"><a href="#L-4109"><span class="linenos">4109</span></a>
</span><span id="L-4110"><a href="#L-4110"><span class="linenos">4110</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
</span><span id="L-4111"><a href="#L-4111"><span class="linenos">4111</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
</span><span id="L-4112"><a href="#L-4112"><span class="linenos">4112</span></a>
</span><span id="L-4113"><a href="#L-4113"><span class="linenos">4113</span></a>
</span><span id="L-4114"><a href="#L-4114"><span class="linenos">4114</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
</span><span id="L-4115"><a href="#L-4115"><span class="linenos">4115</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT&quot;</span><span class="p">]</span>
</span><span id="L-4116"><a href="#L-4116"><span class="linenos">4116</span></a>
</span><span id="L-4117"><a href="#L-4117"><span class="linenos">4117</span></a>
</span><span id="L-4118"><a href="#L-4118"><span class="linenos">4118</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
</span><span id="L-4119"><a href="#L-4119"><span class="linenos">4119</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
</span><span id="L-4120"><a href="#L-4120"><span class="linenos">4120</span></a>
</span><span id="L-4121"><a href="#L-4121"><span class="linenos">4121</span></a>
</span><span id="L-4122"><a href="#L-4122"><span class="linenos">4122</span></a><span class="k">class</span> <span class="nc">JSONFormat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4123"><a href="#L-4123"><span class="linenos">4123</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4124"><a href="#L-4124"><span class="linenos">4124</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
</span><span id="L-4125"><a href="#L-4125"><span class="linenos">4125</span></a>
</span><span id="L-4126"><a href="#L-4126"><span class="linenos">4126</span></a>
</span><span id="L-4127"><a href="#L-4127"><span class="linenos">4127</span></a><span class="k">class</span> <span class="nc">Least</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4128"><a href="#L-4128"><span class="linenos">4128</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4129"><a href="#L-4129"><span class="linenos">4129</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4130"><a href="#L-4130"><span class="linenos">4130</span></a>
</span><span id="L-4131"><a href="#L-4131"><span class="linenos">4131</span></a>
</span><span id="L-4132"><a href="#L-4132"><span class="linenos">4132</span></a><span class="k">class</span> <span class="nc">Length</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4133"><a href="#L-4133"><span class="linenos">4133</span></a> <span class="k">pass</span>
</span><span id="L-4134"><a href="#L-4134"><span class="linenos">4134</span></a>
</span><span id="L-4135"><a href="#L-4135"><span class="linenos">4135</span></a>
</span><span id="L-4136"><a href="#L-4136"><span class="linenos">4136</span></a><span class="k">class</span> <span class="nc">Levenshtein</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4137"><a href="#L-4137"><span class="linenos">4137</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-4138"><a href="#L-4138"><span class="linenos">4138</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-4139"><a href="#L-4139"><span class="linenos">4139</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4140"><a href="#L-4140"><span class="linenos">4140</span></a> <span class="s2">&quot;ins_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4141"><a href="#L-4141"><span class="linenos">4141</span></a> <span class="s2">&quot;del_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4142"><a href="#L-4142"><span class="linenos">4142</span></a> <span class="s2">&quot;sub_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4143"><a href="#L-4143"><span class="linenos">4143</span></a> <span class="p">}</span>
</span><span id="L-4144"><a href="#L-4144"><span class="linenos">4144</span></a>
</span><span id="L-4145"><a href="#L-4145"><span class="linenos">4145</span></a>
</span><span id="L-4146"><a href="#L-4146"><span class="linenos">4146</span></a><span class="k">class</span> <span class="nc">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4147"><a href="#L-4147"><span class="linenos">4147</span></a> <span class="k">pass</span>
</span><span id="L-4148"><a href="#L-4148"><span class="linenos">4148</span></a>
</span><span id="L-4149"><a href="#L-4149"><span class="linenos">4149</span></a>
</span><span id="L-4150"><a href="#L-4150"><span class="linenos">4150</span></a><span class="k">class</span> <span class="nc">Log</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4151"><a href="#L-4151"><span class="linenos">4151</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4152"><a href="#L-4152"><span class="linenos">4152</span></a>
</span><span id="L-4153"><a href="#L-4153"><span class="linenos">4153</span></a>
</span><span id="L-4154"><a href="#L-4154"><span class="linenos">4154</span></a><span class="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4155"><a href="#L-4155"><span class="linenos">4155</span></a> <span class="k">pass</span>
</span><span id="L-4156"><a href="#L-4156"><span class="linenos">4156</span></a>
</span><span id="L-4157"><a href="#L-4157"><span class="linenos">4157</span></a>
</span><span id="L-4158"><a href="#L-4158"><span class="linenos">4158</span></a><span class="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4159"><a href="#L-4159"><span class="linenos">4159</span></a> <span class="k">pass</span>
</span><span id="L-4160"><a href="#L-4160"><span class="linenos">4160</span></a>
</span><span id="L-4161"><a href="#L-4161"><span class="linenos">4161</span></a>
</span><span id="L-4162"><a href="#L-4162"><span class="linenos">4162</span></a><span class="k">class</span> <span class="nc">LogicalOr</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4163"><a href="#L-4163"><span class="linenos">4163</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLOR_AGG&quot;</span><span class="p">]</span>
</span><span id="L-4164"><a href="#L-4164"><span class="linenos">4164</span></a>
</span><span id="L-4165"><a href="#L-4165"><span class="linenos">4165</span></a>
</span><span id="L-4166"><a href="#L-4166"><span class="linenos">4166</span></a><span class="k">class</span> <span class="nc">LogicalAnd</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4167"><a href="#L-4167"><span class="linenos">4167</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLAND_AGG&quot;</span><span class="p">]</span>
</span><span id="L-4168"><a href="#L-4168"><span class="linenos">4168</span></a>
</span><span id="L-4169"><a href="#L-4169"><span class="linenos">4169</span></a>
</span><span id="L-4170"><a href="#L-4170"><span class="linenos">4170</span></a><span class="k">class</span> <span class="nc">Lower</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4171"><a href="#L-4171"><span class="linenos">4171</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOWER&quot;</span><span class="p">,</span> <span class="s2">&quot;LCASE&quot;</span><span class="p">]</span>
</span><span id="L-4172"><a href="#L-4172"><span class="linenos">4172</span></a>
</span><span id="L-4173"><a href="#L-4173"><span class="linenos">4173</span></a>
</span><span id="L-4174"><a href="#L-4174"><span class="linenos">4174</span></a><span class="k">class</span> <span class="nc">Map</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4175"><a href="#L-4175"><span class="linenos">4175</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4176"><a href="#L-4176"><span class="linenos">4176</span></a>
</span><span id="L-4177"><a href="#L-4177"><span class="linenos">4177</span></a>
</span><span id="L-4178"><a href="#L-4178"><span class="linenos">4178</span></a><span class="k">class</span> <span class="nc">StarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4179"><a href="#L-4179"><span class="linenos">4179</span></a> <span class="k">pass</span>
</span><span id="L-4180"><a href="#L-4180"><span class="linenos">4180</span></a>
</span><span id="L-4181"><a href="#L-4181"><span class="linenos">4181</span></a>
</span><span id="L-4182"><a href="#L-4182"><span class="linenos">4182</span></a><span class="k">class</span> <span class="nc">VarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4183"><a href="#L-4183"><span class="linenos">4183</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4184"><a href="#L-4184"><span class="linenos">4184</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4185"><a href="#L-4185"><span class="linenos">4185</span></a>
</span><span id="L-4186"><a href="#L-4186"><span class="linenos">4186</span></a>
</span><span id="L-4187"><a href="#L-4187"><span class="linenos">4187</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html</span>
</span><span id="L-4188"><a href="#L-4188"><span class="linenos">4188</span></a><span class="k">class</span> <span class="nc">MatchAgainst</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4189"><a href="#L-4189"><span class="linenos">4189</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;modifier&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4190"><a href="#L-4190"><span class="linenos">4190</span></a>
</span><span id="L-4191"><a href="#L-4191"><span class="linenos">4191</span></a>
</span><span id="L-4192"><a href="#L-4192"><span class="linenos">4192</span></a><span class="k">class</span> <span class="nc">Max</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4193"><a href="#L-4193"><span class="linenos">4193</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4194"><a href="#L-4194"><span class="linenos">4194</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4195"><a href="#L-4195"><span class="linenos">4195</span></a>
</span><span id="L-4196"><a href="#L-4196"><span class="linenos">4196</span></a>
</span><span id="L-4197"><a href="#L-4197"><span class="linenos">4197</span></a><span class="k">class</span> <span class="nc">MD5</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4198"><a href="#L-4198"><span class="linenos">4198</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5&quot;</span><span class="p">]</span>
</span><span id="L-4199"><a href="#L-4199"><span class="linenos">4199</span></a>
</span><span id="L-4200"><a href="#L-4200"><span class="linenos">4200</span></a>
</span><span id="L-4201"><a href="#L-4201"><span class="linenos">4201</span></a><span class="k">class</span> <span class="nc">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4202"><a href="#L-4202"><span class="linenos">4202</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4203"><a href="#L-4203"><span class="linenos">4203</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4204"><a href="#L-4204"><span class="linenos">4204</span></a>
</span><span id="L-4205"><a href="#L-4205"><span class="linenos">4205</span></a>
</span><span id="L-4206"><a href="#L-4206"><span class="linenos">4206</span></a><span class="k">class</span> <span class="nc">Month</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4207"><a href="#L-4207"><span class="linenos">4207</span></a> <span class="k">pass</span>
</span><span id="L-4208"><a href="#L-4208"><span class="linenos">4208</span></a>
</span><span id="L-4209"><a href="#L-4209"><span class="linenos">4209</span></a>
</span><span id="L-4210"><a href="#L-4210"><span class="linenos">4210</span></a><span class="k">class</span> <span class="nc">Nvl2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4211"><a href="#L-4211"><span class="linenos">4211</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4212"><a href="#L-4212"><span class="linenos">4212</span></a>
</span><span id="L-4213"><a href="#L-4213"><span class="linenos">4213</span></a>
</span><span id="L-4214"><a href="#L-4214"><span class="linenos">4214</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4215"><a href="#L-4215"><span class="linenos">4215</span></a> <span class="k">pass</span>
</span><span id="L-4216"><a href="#L-4216"><span class="linenos">4216</span></a>
</span><span id="L-4217"><a href="#L-4217"><span class="linenos">4217</span></a>
</span><span id="L-4218"><a href="#L-4218"><span class="linenos">4218</span></a><span class="k">class</span> <span class="nc">Pow</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
</span><span id="L-4219"><a href="#L-4219"><span class="linenos">4219</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;POWER&quot;</span><span class="p">,</span> <span class="s2">&quot;POW&quot;</span><span class="p">]</span>
</span><span id="L-4220"><a href="#L-4220"><span class="linenos">4220</span></a>
</span><span id="L-4221"><a href="#L-4221"><span class="linenos">4221</span></a>
</span><span id="L-4222"><a href="#L-4222"><span class="linenos">4222</span></a><span class="k">class</span> <span class="nc">PercentileCont</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4223"><a href="#L-4223"><span class="linenos">4223</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4224"><a href="#L-4224"><span class="linenos">4224</span></a>
</span><span id="L-4225"><a href="#L-4225"><span class="linenos">4225</span></a>
</span><span id="L-4226"><a href="#L-4226"><span class="linenos">4226</span></a><span class="k">class</span> <span class="nc">PercentileDisc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4227"><a href="#L-4227"><span class="linenos">4227</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4228"><a href="#L-4228"><span class="linenos">4228</span></a>
</span><span id="L-4229"><a href="#L-4229"><span class="linenos">4229</span></a>
</span><span id="L-4230"><a href="#L-4230"><span class="linenos">4230</span></a><span class="k">class</span> <span class="nc">Quantile</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4231"><a href="#L-4231"><span class="linenos">4231</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4232"><a href="#L-4232"><span class="linenos">4232</span></a>
</span><span id="L-4233"><a href="#L-4233"><span class="linenos">4233</span></a>
</span><span id="L-4234"><a href="#L-4234"><span class="linenos">4234</span></a><span class="k">class</span> <span class="nc">ApproxQuantile</span><span class="p">(</span><span class="n">Quantile</span><span class="p">):</span>
</span><span id="L-4235"><a href="#L-4235"><span class="linenos">4235</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4236"><a href="#L-4236"><span class="linenos">4236</span></a>
</span><span id="L-4237"><a href="#L-4237"><span class="linenos">4237</span></a>
</span><span id="L-4238"><a href="#L-4238"><span class="linenos">4238</span></a><span class="k">class</span> <span class="nc">RangeN</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4239"><a href="#L-4239"><span class="linenos">4239</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;each&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4240"><a href="#L-4240"><span class="linenos">4240</span></a>
</span><span id="L-4241"><a href="#L-4241"><span class="linenos">4241</span></a>
</span><span id="L-4242"><a href="#L-4242"><span class="linenos">4242</span></a><span class="k">class</span> <span class="nc">ReadCSV</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4243"><a href="#L-4243"><span class="linenos">4243</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;READ_CSV&quot;</span><span class="p">]</span>
</span><span id="L-4244"><a href="#L-4244"><span class="linenos">4244</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4245"><a href="#L-4245"><span class="linenos">4245</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4246"><a href="#L-4246"><span class="linenos">4246</span></a>
</span><span id="L-4247"><a href="#L-4247"><span class="linenos">4247</span></a>
</span><span id="L-4248"><a href="#L-4248"><span class="linenos">4248</span></a><span class="k">class</span> <span class="nc">Reduce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4249"><a href="#L-4249"><span class="linenos">4249</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;initial&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;merge&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;finish&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4250"><a href="#L-4250"><span class="linenos">4250</span></a>
</span><span id="L-4251"><a href="#L-4251"><span class="linenos">4251</span></a>
</span><span id="L-4252"><a href="#L-4252"><span class="linenos">4252</span></a><span class="k">class</span> <span class="nc">RegexpExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4253"><a href="#L-4253"><span class="linenos">4253</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-4254"><a href="#L-4254"><span class="linenos">4254</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-4255"><a href="#L-4255"><span class="linenos">4255</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-4256"><a href="#L-4256"><span class="linenos">4256</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4257"><a href="#L-4257"><span class="linenos">4257</span></a> <span class="s2">&quot;occurrence&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4258"><a href="#L-4258"><span class="linenos">4258</span></a> <span class="s2">&quot;group&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4259"><a href="#L-4259"><span class="linenos">4259</span></a> <span class="p">}</span>
</span><span id="L-4260"><a href="#L-4260"><span class="linenos">4260</span></a>
</span><span id="L-4261"><a href="#L-4261"><span class="linenos">4261</span></a>
</span><span id="L-4262"><a href="#L-4262"><span class="linenos">4262</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4263"><a href="#L-4263"><span class="linenos">4263</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4264"><a href="#L-4264"><span class="linenos">4264</span></a>
</span><span id="L-4265"><a href="#L-4265"><span class="linenos">4265</span></a>
</span><span id="L-4266"><a href="#L-4266"><span class="linenos">4266</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4267"><a href="#L-4267"><span class="linenos">4267</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4268"><a href="#L-4268"><span class="linenos">4268</span></a>
</span><span id="L-4269"><a href="#L-4269"><span class="linenos">4269</span></a>
</span><span id="L-4270"><a href="#L-4270"><span class="linenos">4270</span></a><span class="c1"># https://spark.apache.org/docs/latest/api/python/reference/pyspark.sql/api/pyspark.sql.functions.split.html</span>
</span><span id="L-4271"><a href="#L-4271"><span class="linenos">4271</span></a><span class="c1"># limit is the number of times a pattern is applied</span>
</span><span id="L-4272"><a href="#L-4272"><span class="linenos">4272</span></a><span class="k">class</span> <span class="nc">RegexpSplit</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4273"><a href="#L-4273"><span class="linenos">4273</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4274"><a href="#L-4274"><span class="linenos">4274</span></a>
</span><span id="L-4275"><a href="#L-4275"><span class="linenos">4275</span></a>
</span><span id="L-4276"><a href="#L-4276"><span class="linenos">4276</span></a><span class="k">class</span> <span class="nc">Repeat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4277"><a href="#L-4277"><span class="linenos">4277</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;times&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4278"><a href="#L-4278"><span class="linenos">4278</span></a>
</span><span id="L-4279"><a href="#L-4279"><span class="linenos">4279</span></a>
</span><span id="L-4280"><a href="#L-4280"><span class="linenos">4280</span></a><span class="k">class</span> <span class="nc">Round</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4281"><a href="#L-4281"><span class="linenos">4281</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4282"><a href="#L-4282"><span class="linenos">4282</span></a>
</span><span id="L-4283"><a href="#L-4283"><span class="linenos">4283</span></a>
</span><span id="L-4284"><a href="#L-4284"><span class="linenos">4284</span></a><span class="k">class</span> <span class="nc">RowNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4285"><a href="#L-4285"><span class="linenos">4285</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="L-4286"><a href="#L-4286"><span class="linenos">4286</span></a>
</span><span id="L-4287"><a href="#L-4287"><span class="linenos">4287</span></a>
</span><span id="L-4288"><a href="#L-4288"><span class="linenos">4288</span></a><span class="k">class</span> <span class="nc">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4289"><a href="#L-4289"><span class="linenos">4289</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4290"><a href="#L-4290"><span class="linenos">4290</span></a>
</span><span id="L-4291"><a href="#L-4291"><span class="linenos">4291</span></a>
</span><span id="L-4292"><a href="#L-4292"><span class="linenos">4292</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4293"><a href="#L-4293"><span class="linenos">4293</span></a> <span class="k">pass</span>
</span><span id="L-4294"><a href="#L-4294"><span class="linenos">4294</span></a>
</span><span id="L-4295"><a href="#L-4295"><span class="linenos">4295</span></a>
</span><span id="L-4296"><a href="#L-4296"><span class="linenos">4296</span></a><span class="k">class</span> <span class="nc">SHA</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4297"><a href="#L-4297"><span class="linenos">4297</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA&quot;</span><span class="p">,</span> <span class="s2">&quot;SHA1&quot;</span><span class="p">]</span>
</span><span id="L-4298"><a href="#L-4298"><span class="linenos">4298</span></a>
</span><span id="L-4299"><a href="#L-4299"><span class="linenos">4299</span></a>
</span><span id="L-4300"><a href="#L-4300"><span class="linenos">4300</span></a><span class="k">class</span> <span class="nc">SHA2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4301"><a href="#L-4301"><span class="linenos">4301</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA2&quot;</span><span class="p">]</span>
</span><span id="L-4302"><a href="#L-4302"><span class="linenos">4302</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4303"><a href="#L-4303"><span class="linenos">4303</span></a>
</span><span id="L-4304"><a href="#L-4304"><span class="linenos">4304</span></a>
</span><span id="L-4305"><a href="#L-4305"><span class="linenos">4305</span></a><span class="k">class</span> <span class="nc">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4306"><a href="#L-4306"><span class="linenos">4306</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;asc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4307"><a href="#L-4307"><span class="linenos">4307</span></a>
</span><span id="L-4308"><a href="#L-4308"><span class="linenos">4308</span></a>
</span><span id="L-4309"><a href="#L-4309"><span class="linenos">4309</span></a><span class="k">class</span> <span class="nc">Split</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4310"><a href="#L-4310"><span class="linenos">4310</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4311"><a href="#L-4311"><span class="linenos">4311</span></a>
</span><span id="L-4312"><a href="#L-4312"><span class="linenos">4312</span></a>
</span><span id="L-4313"><a href="#L-4313"><span class="linenos">4313</span></a><span class="c1"># Start may be omitted in the case of postgres</span>
</span><span id="L-4314"><a href="#L-4314"><span class="linenos">4314</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span>
</span><span id="L-4315"><a href="#L-4315"><span class="linenos">4315</span></a><span class="k">class</span> <span class="nc">Substring</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4316"><a href="#L-4316"><span class="linenos">4316</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4317"><a href="#L-4317"><span class="linenos">4317</span></a>
</span><span id="L-4318"><a href="#L-4318"><span class="linenos">4318</span></a>
</span><span id="L-4319"><a href="#L-4319"><span class="linenos">4319</span></a><span class="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4320"><a href="#L-4320"><span class="linenos">4320</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4321"><a href="#L-4321"><span class="linenos">4321</span></a>
</span><span id="L-4322"><a href="#L-4322"><span class="linenos">4322</span></a>
</span><span id="L-4323"><a href="#L-4323"><span class="linenos">4323</span></a><span class="k">class</span> <span class="nc">StrPosition</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4324"><a href="#L-4324"><span class="linenos">4324</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-4325"><a href="#L-4325"><span class="linenos">4325</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-4326"><a href="#L-4326"><span class="linenos">4326</span></a> <span class="s2">&quot;substr&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-4327"><a href="#L-4327"><span class="linenos">4327</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4328"><a href="#L-4328"><span class="linenos">4328</span></a> <span class="s2">&quot;instance&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4329"><a href="#L-4329"><span class="linenos">4329</span></a> <span class="p">}</span>
</span><span id="L-4330"><a href="#L-4330"><span class="linenos">4330</span></a>
</span><span id="L-4331"><a href="#L-4331"><span class="linenos">4331</span></a>
</span><span id="L-4332"><a href="#L-4332"><span class="linenos">4332</span></a><span class="k">class</span> <span class="nc">StrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4333"><a href="#L-4333"><span class="linenos">4333</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4334"><a href="#L-4334"><span class="linenos">4334</span></a>
</span><span id="L-4335"><a href="#L-4335"><span class="linenos">4335</span></a>
</span><span id="L-4336"><a href="#L-4336"><span class="linenos">4336</span></a><span class="k">class</span> <span class="nc">StrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4337"><a href="#L-4337"><span class="linenos">4337</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4338"><a href="#L-4338"><span class="linenos">4338</span></a>
</span><span id="L-4339"><a href="#L-4339"><span class="linenos">4339</span></a>
</span><span id="L-4340"><a href="#L-4340"><span class="linenos">4340</span></a><span class="c1"># Spark allows unix_timestamp()</span>
</span><span id="L-4341"><a href="#L-4341"><span class="linenos">4341</span></a><span class="c1"># https://spark.apache.org/docs/3.1.3/api/python/reference/api/pyspark.sql.functions.unix_timestamp.html</span>
</span><span id="L-4342"><a href="#L-4342"><span class="linenos">4342</span></a><span class="k">class</span> <span class="nc">StrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4343"><a href="#L-4343"><span class="linenos">4343</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4344"><a href="#L-4344"><span class="linenos">4344</span></a>
</span><span id="L-4345"><a href="#L-4345"><span class="linenos">4345</span></a>
</span><span id="L-4346"><a href="#L-4346"><span class="linenos">4346</span></a><span class="k">class</span> <span class="nc">NumberToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4347"><a href="#L-4347"><span class="linenos">4347</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4348"><a href="#L-4348"><span class="linenos">4348</span></a>
</span><span id="L-4349"><a href="#L-4349"><span class="linenos">4349</span></a>
</span><span id="L-4350"><a href="#L-4350"><span class="linenos">4350</span></a><span class="k">class</span> <span class="nc">Struct</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4351"><a href="#L-4351"><span class="linenos">4351</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4352"><a href="#L-4352"><span class="linenos">4352</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-4353"><a href="#L-4353"><span class="linenos">4353</span></a>
</span><span id="L-4354"><a href="#L-4354"><span class="linenos">4354</span></a>
</span><span id="L-4355"><a href="#L-4355"><span class="linenos">4355</span></a><span class="k">class</span> <span class="nc">StructExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4356"><a href="#L-4356"><span class="linenos">4356</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4357"><a href="#L-4357"><span class="linenos">4357</span></a>
</span><span id="L-4358"><a href="#L-4358"><span class="linenos">4358</span></a>
</span><span id="L-4359"><a href="#L-4359"><span class="linenos">4359</span></a><span class="k">class</span> <span class="nc">Sum</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4360"><a href="#L-4360"><span class="linenos">4360</span></a> <span class="k">pass</span>
</span><span id="L-4361"><a href="#L-4361"><span class="linenos">4361</span></a>
</span><span id="L-4362"><a href="#L-4362"><span class="linenos">4362</span></a>
</span><span id="L-4363"><a href="#L-4363"><span class="linenos">4363</span></a><span class="k">class</span> <span class="nc">Sqrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4364"><a href="#L-4364"><span class="linenos">4364</span></a> <span class="k">pass</span>
</span><span id="L-4365"><a href="#L-4365"><span class="linenos">4365</span></a>
</span><span id="L-4366"><a href="#L-4366"><span class="linenos">4366</span></a>
</span><span id="L-4367"><a href="#L-4367"><span class="linenos">4367</span></a><span class="k">class</span> <span class="nc">Stddev</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4368"><a href="#L-4368"><span class="linenos">4368</span></a> <span class="k">pass</span>
</span><span id="L-4369"><a href="#L-4369"><span class="linenos">4369</span></a>
</span><span id="L-4370"><a href="#L-4370"><span class="linenos">4370</span></a>
</span><span id="L-4371"><a href="#L-4371"><span class="linenos">4371</span></a><span class="k">class</span> <span class="nc">StddevPop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4372"><a href="#L-4372"><span class="linenos">4372</span></a> <span class="k">pass</span>
</span><span id="L-4373"><a href="#L-4373"><span class="linenos">4373</span></a>
</span><span id="L-4374"><a href="#L-4374"><span class="linenos">4374</span></a>
</span><span id="L-4375"><a href="#L-4375"><span class="linenos">4375</span></a><span class="k">class</span> <span class="nc">StddevSamp</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4376"><a href="#L-4376"><span class="linenos">4376</span></a> <span class="k">pass</span>
</span><span id="L-4377"><a href="#L-4377"><span class="linenos">4377</span></a>
</span><span id="L-4378"><a href="#L-4378"><span class="linenos">4378</span></a>
</span><span id="L-4379"><a href="#L-4379"><span class="linenos">4379</span></a><span class="k">class</span> <span class="nc">TimeToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4380"><a href="#L-4380"><span class="linenos">4380</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4381"><a href="#L-4381"><span class="linenos">4381</span></a>
</span><span id="L-4382"><a href="#L-4382"><span class="linenos">4382</span></a>
</span><span id="L-4383"><a href="#L-4383"><span class="linenos">4383</span></a><span class="k">class</span> <span class="nc">TimeToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4384"><a href="#L-4384"><span class="linenos">4384</span></a> <span class="k">pass</span>
</span><span id="L-4385"><a href="#L-4385"><span class="linenos">4385</span></a>
</span><span id="L-4386"><a href="#L-4386"><span class="linenos">4386</span></a>
</span><span id="L-4387"><a href="#L-4387"><span class="linenos">4387</span></a><span class="k">class</span> <span class="nc">TimeToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4388"><a href="#L-4388"><span class="linenos">4388</span></a> <span class="k">pass</span>
</span><span id="L-4389"><a href="#L-4389"><span class="linenos">4389</span></a>
</span><span id="L-4390"><a href="#L-4390"><span class="linenos">4390</span></a>
</span><span id="L-4391"><a href="#L-4391"><span class="linenos">4391</span></a><span class="k">class</span> <span class="nc">TimeStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4392"><a href="#L-4392"><span class="linenos">4392</span></a> <span class="k">pass</span>
</span><span id="L-4393"><a href="#L-4393"><span class="linenos">4393</span></a>
</span><span id="L-4394"><a href="#L-4394"><span class="linenos">4394</span></a>
</span><span id="L-4395"><a href="#L-4395"><span class="linenos">4395</span></a><span class="k">class</span> <span class="nc">TimeStrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4396"><a href="#L-4396"><span class="linenos">4396</span></a> <span class="k">pass</span>
</span><span id="L-4397"><a href="#L-4397"><span class="linenos">4397</span></a>
</span><span id="L-4398"><a href="#L-4398"><span class="linenos">4398</span></a>
</span><span id="L-4399"><a href="#L-4399"><span class="linenos">4399</span></a><span class="k">class</span> <span class="nc">TimeStrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4400"><a href="#L-4400"><span class="linenos">4400</span></a> <span class="k">pass</span>
</span><span id="L-4401"><a href="#L-4401"><span class="linenos">4401</span></a>
</span><span id="L-4402"><a href="#L-4402"><span class="linenos">4402</span></a>
</span><span id="L-4403"><a href="#L-4403"><span class="linenos">4403</span></a><span class="k">class</span> <span class="nc">Trim</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4404"><a href="#L-4404"><span class="linenos">4404</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="L-4405"><a href="#L-4405"><span class="linenos">4405</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-4406"><a href="#L-4406"><span class="linenos">4406</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4407"><a href="#L-4407"><span class="linenos">4407</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4408"><a href="#L-4408"><span class="linenos">4408</span></a> <span class="s2">&quot;collation&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4409"><a href="#L-4409"><span class="linenos">4409</span></a> <span class="p">}</span>
</span><span id="L-4410"><a href="#L-4410"><span class="linenos">4410</span></a>
</span><span id="L-4411"><a href="#L-4411"><span class="linenos">4411</span></a>
</span><span id="L-4412"><a href="#L-4412"><span class="linenos">4412</span></a><span class="k">class</span> <span class="nc">TsOrDsAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="L-4413"><a href="#L-4413"><span class="linenos">4413</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4414"><a href="#L-4414"><span class="linenos">4414</span></a>
</span><span id="L-4415"><a href="#L-4415"><span class="linenos">4415</span></a>
</span><span id="L-4416"><a href="#L-4416"><span class="linenos">4416</span></a><span class="k">class</span> <span class="nc">TsOrDsToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4417"><a href="#L-4417"><span class="linenos">4417</span></a> <span class="k">pass</span>
</span><span id="L-4418"><a href="#L-4418"><span class="linenos">4418</span></a>
</span><span id="L-4419"><a href="#L-4419"><span class="linenos">4419</span></a>
</span><span id="L-4420"><a href="#L-4420"><span class="linenos">4420</span></a><span class="k">class</span> <span class="nc">TsOrDsToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4421"><a href="#L-4421"><span class="linenos">4421</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4422"><a href="#L-4422"><span class="linenos">4422</span></a>
</span><span id="L-4423"><a href="#L-4423"><span class="linenos">4423</span></a>
</span><span id="L-4424"><a href="#L-4424"><span class="linenos">4424</span></a><span class="k">class</span> <span class="nc">TsOrDiToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4425"><a href="#L-4425"><span class="linenos">4425</span></a> <span class="k">pass</span>
</span><span id="L-4426"><a href="#L-4426"><span class="linenos">4426</span></a>
</span><span id="L-4427"><a href="#L-4427"><span class="linenos">4427</span></a>
</span><span id="L-4428"><a href="#L-4428"><span class="linenos">4428</span></a><span class="k">class</span> <span class="nc">Unhex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4429"><a href="#L-4429"><span class="linenos">4429</span></a> <span class="k">pass</span>
</span><span id="L-4430"><a href="#L-4430"><span class="linenos">4430</span></a>
</span><span id="L-4431"><a href="#L-4431"><span class="linenos">4431</span></a>
</span><span id="L-4432"><a href="#L-4432"><span class="linenos">4432</span></a><span class="k">class</span> <span class="nc">UnixToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4433"><a href="#L-4433"><span class="linenos">4433</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4434"><a href="#L-4434"><span class="linenos">4434</span></a>
</span><span id="L-4435"><a href="#L-4435"><span class="linenos">4435</span></a>
</span><span id="L-4436"><a href="#L-4436"><span class="linenos">4436</span></a><span class="c1"># https://prestodb.io/docs/current/functions/datetime.html</span>
</span><span id="L-4437"><a href="#L-4437"><span class="linenos">4437</span></a><span class="c1"># presto has weird zone/hours/minutes</span>
</span><span id="L-4438"><a href="#L-4438"><span class="linenos">4438</span></a><span class="k">class</span> <span class="nc">UnixToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4439"><a href="#L-4439"><span class="linenos">4439</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4440"><a href="#L-4440"><span class="linenos">4440</span></a>
</span><span id="L-4441"><a href="#L-4441"><span class="linenos">4441</span></a> <span class="n">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;seconds&quot;</span><span class="p">)</span>
</span><span id="L-4442"><a href="#L-4442"><span class="linenos">4442</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;millis&quot;</span><span class="p">)</span>
</span><span id="L-4443"><a href="#L-4443"><span class="linenos">4443</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;micros&quot;</span><span class="p">)</span>
</span><span id="L-4444"><a href="#L-4444"><span class="linenos">4444</span></a>
</span><span id="L-4445"><a href="#L-4445"><span class="linenos">4445</span></a>
</span><span id="L-4446"><a href="#L-4446"><span class="linenos">4446</span></a><span class="k">class</span> <span class="nc">UnixToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4447"><a href="#L-4447"><span class="linenos">4447</span></a> <span class="k">pass</span>
</span><span id="L-4448"><a href="#L-4448"><span class="linenos">4448</span></a>
</span><span id="L-4449"><a href="#L-4449"><span class="linenos">4449</span></a>
</span><span id="L-4450"><a href="#L-4450"><span class="linenos">4450</span></a><span class="k">class</span> <span class="nc">Upper</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4451"><a href="#L-4451"><span class="linenos">4451</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;UPPER&quot;</span><span class="p">,</span> <span class="s2">&quot;UCASE&quot;</span><span class="p">]</span>
</span><span id="L-4452"><a href="#L-4452"><span class="linenos">4452</span></a>
</span><span id="L-4453"><a href="#L-4453"><span class="linenos">4453</span></a>
</span><span id="L-4454"><a href="#L-4454"><span class="linenos">4454</span></a><span class="k">class</span> <span class="nc">Variance</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4455"><a href="#L-4455"><span class="linenos">4455</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;VARIANCE&quot;</span><span class="p">,</span> <span class="s2">&quot;VARIANCE_SAMP&quot;</span><span class="p">,</span> <span class="s2">&quot;VAR_SAMP&quot;</span><span class="p">]</span>
</span><span id="L-4456"><a href="#L-4456"><span class="linenos">4456</span></a>
</span><span id="L-4457"><a href="#L-4457"><span class="linenos">4457</span></a>
</span><span id="L-4458"><a href="#L-4458"><span class="linenos">4458</span></a><span class="k">class</span> <span class="nc">VariancePop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="L-4459"><a href="#L-4459"><span class="linenos">4459</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;VARIANCE_POP&quot;</span><span class="p">,</span> <span class="s2">&quot;VAR_POP&quot;</span><span class="p">]</span>
</span><span id="L-4460"><a href="#L-4460"><span class="linenos">4460</span></a>
</span><span id="L-4461"><a href="#L-4461"><span class="linenos">4461</span></a>
</span><span id="L-4462"><a href="#L-4462"><span class="linenos">4462</span></a><span class="k">class</span> <span class="nc">Week</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4463"><a href="#L-4463"><span class="linenos">4463</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;mode&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4464"><a href="#L-4464"><span class="linenos">4464</span></a>
</span><span id="L-4465"><a href="#L-4465"><span class="linenos">4465</span></a>
</span><span id="L-4466"><a href="#L-4466"><span class="linenos">4466</span></a><span class="k">class</span> <span class="nc">XMLTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4467"><a href="#L-4467"><span class="linenos">4467</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;passing&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;by_ref&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4468"><a href="#L-4468"><span class="linenos">4468</span></a>
</span><span id="L-4469"><a href="#L-4469"><span class="linenos">4469</span></a>
</span><span id="L-4470"><a href="#L-4470"><span class="linenos">4470</span></a><span class="k">class</span> <span class="nc">Year</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4471"><a href="#L-4471"><span class="linenos">4471</span></a> <span class="k">pass</span>
</span><span id="L-4472"><a href="#L-4472"><span class="linenos">4472</span></a>
</span><span id="L-4473"><a href="#L-4473"><span class="linenos">4473</span></a>
</span><span id="L-4474"><a href="#L-4474"><span class="linenos">4474</span></a><span class="k">class</span> <span class="nc">Use</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-4475"><a href="#L-4475"><span class="linenos">4475</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4476"><a href="#L-4476"><span class="linenos">4476</span></a>
</span><span id="L-4477"><a href="#L-4477"><span class="linenos">4477</span></a>
</span><span id="L-4478"><a href="#L-4478"><span class="linenos">4478</span></a><span class="k">class</span> <span class="nc">Merge</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="L-4479"><a href="#L-4479"><span class="linenos">4479</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4480"><a href="#L-4480"><span class="linenos">4480</span></a>
</span><span id="L-4481"><a href="#L-4481"><span class="linenos">4481</span></a>
</span><span id="L-4482"><a href="#L-4482"><span class="linenos">4482</span></a><span class="k">class</span> <span class="nc">When</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4483"><a href="#L-4483"><span class="linenos">4483</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;matched&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;source&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;condition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;then&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="L-4484"><a href="#L-4484"><span class="linenos">4484</span></a>
</span><span id="L-4485"><a href="#L-4485"><span class="linenos">4485</span></a>
</span><span id="L-4486"><a href="#L-4486"><span class="linenos">4486</span></a><span class="c1"># https://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqljnextvaluefor.html</span>
</span><span id="L-4487"><a href="#L-4487"><span class="linenos">4487</span></a><span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/next-value-for-transact-sql?view=sql-server-ver16</span>
</span><span id="L-4488"><a href="#L-4488"><span class="linenos">4488</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="L-4489"><a href="#L-4489"><span class="linenos">4489</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="L-4490"><a href="#L-4490"><span class="linenos">4490</span></a>
</span><span id="L-4491"><a href="#L-4491"><span class="linenos">4491</span></a>
</span><span id="L-4492"><a href="#L-4492"><span class="linenos">4492</span></a><span class="k">def</span> <span class="nf">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">):</span>
</span><span id="L-4493"><a href="#L-4493"><span class="linenos">4493</span></a> <span class="k">return</span> <span class="n">arg</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">str</span> <span class="k">else</span> <span class="n">arg</span>
</span><span id="L-4494"><a href="#L-4494"><span class="linenos">4494</span></a>
</span><span id="L-4495"><a href="#L-4495"><span class="linenos">4495</span></a>
</span><span id="L-4496"><a href="#L-4496"><span class="linenos">4496</span></a><span class="n">ALL_FUNCTIONS</span> <span class="o">=</span> <span class="n">subclasses</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">Func</span><span class="p">,</span> <span class="p">(</span><span class="n">AggFunc</span><span class="p">,</span> <span class="n">Anonymous</span><span class="p">,</span> <span class="n">Func</span><span class="p">))</span>
</span><span id="L-4497"><a href="#L-4497"><span class="linenos">4497</span></a>
</span><span id="L-4498"><a href="#L-4498"><span class="linenos">4498</span></a>
</span><span id="L-4499"><a href="#L-4499"><span class="linenos">4499</span></a><span class="c1"># Helpers</span>
</span><span id="L-4500"><a href="#L-4500"><span class="linenos">4500</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
</span><span id="L-4501"><a href="#L-4501"><span class="linenos">4501</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
</span><span id="L-4502"><a href="#L-4502"><span class="linenos">4502</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-4503"><a href="#L-4503"><span class="linenos">4503</span></a> <span class="o">*</span><span class="p">,</span>
</span><span id="L-4504"><a href="#L-4504"><span class="linenos">4504</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span>
</span><span id="L-4505"><a href="#L-4505"><span class="linenos">4505</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4506"><a href="#L-4506"><span class="linenos">4506</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4507"><a href="#L-4507"><span class="linenos">4507</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4508"><a href="#L-4508"><span class="linenos">4508</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4509"><a href="#L-4509"><span class="linenos">4509</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="L-4510"><a href="#L-4510"><span class="linenos">4510</span></a> <span class="o">...</span>
</span><span id="L-4511"><a href="#L-4511"><span class="linenos">4511</span></a>
</span><span id="L-4512"><a href="#L-4512"><span class="linenos">4512</span></a>
</span><span id="L-4513"><a href="#L-4513"><span class="linenos">4513</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
</span><span id="L-4514"><a href="#L-4514"><span class="linenos">4514</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
</span><span id="L-4515"><a href="#L-4515"><span class="linenos">4515</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">E</span><span class="p">,</span>
</span><span id="L-4516"><a href="#L-4516"><span class="linenos">4516</span></a> <span class="o">*</span><span class="p">,</span>
</span><span id="L-4517"><a href="#L-4517"><span class="linenos">4517</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">IntoType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4518"><a href="#L-4518"><span class="linenos">4518</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4519"><a href="#L-4519"><span class="linenos">4519</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4520"><a href="#L-4520"><span class="linenos">4520</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4521"><a href="#L-4521"><span class="linenos">4521</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4522"><a href="#L-4522"><span class="linenos">4522</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="L-4523"><a href="#L-4523"><span class="linenos">4523</span></a> <span class="o">...</span>
</span><span id="L-4524"><a href="#L-4524"><span class="linenos">4524</span></a>
</span><span id="L-4525"><a href="#L-4525"><span class="linenos">4525</span></a>
</span><span id="L-4526"><a href="#L-4526"><span class="linenos">4526</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
</span><span id="L-4527"><a href="#L-4527"><span class="linenos">4527</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-4528"><a href="#L-4528"><span class="linenos">4528</span></a> <span class="o">*</span><span class="p">,</span>
</span><span id="L-4529"><a href="#L-4529"><span class="linenos">4529</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">IntoType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4530"><a href="#L-4530"><span class="linenos">4530</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4531"><a href="#L-4531"><span class="linenos">4531</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4532"><a href="#L-4532"><span class="linenos">4532</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-4533"><a href="#L-4533"><span class="linenos">4533</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4534"><a href="#L-4534"><span class="linenos">4534</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="L-4535"><a href="#L-4535"><span class="linenos">4535</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
</span><span id="L-4536"><a href="#L-4536"><span class="linenos">4536</span></a>
</span><span id="L-4537"><a href="#L-4537"><span class="linenos">4537</span></a><span class="sd"> Example:</span>
</span><span id="L-4538"><a href="#L-4538"><span class="linenos">4538</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
</span><span id="L-4539"><a href="#L-4539"><span class="linenos">4539</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
</span><span id="L-4540"><a href="#L-4540"><span class="linenos">4540</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
</span><span id="L-4541"><a href="#L-4541"><span class="linenos">4541</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
</span><span id="L-4542"><a href="#L-4542"><span class="linenos">4542</span></a>
</span><span id="L-4543"><a href="#L-4543"><span class="linenos">4543</span></a><span class="sd"> Args:</span>
</span><span id="L-4544"><a href="#L-4544"><span class="linenos">4544</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
</span><span id="L-4545"><a href="#L-4545"><span class="linenos">4545</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
</span><span id="L-4546"><a href="#L-4546"><span class="linenos">4546</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
</span><span id="L-4547"><a href="#L-4547"><span class="linenos">4547</span></a><span class="sd"> input expression is a SQL string).</span>
</span><span id="L-4548"><a href="#L-4548"><span class="linenos">4548</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
</span><span id="L-4549"><a href="#L-4549"><span class="linenos">4549</span></a><span class="sd"> (automatically includes a space)</span>
</span><span id="L-4550"><a href="#L-4550"><span class="linenos">4550</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
</span><span id="L-4551"><a href="#L-4551"><span class="linenos">4551</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
</span><span id="L-4552"><a href="#L-4552"><span class="linenos">4552</span></a><span class="sd"> that an input expression is a SQL string).</span>
</span><span id="L-4553"><a href="#L-4553"><span class="linenos">4553</span></a>
</span><span id="L-4554"><a href="#L-4554"><span class="linenos">4554</span></a><span class="sd"> Returns:</span>
</span><span id="L-4555"><a href="#L-4555"><span class="linenos">4555</span></a><span class="sd"> Expression: the parsed or given expression.</span>
</span><span id="L-4556"><a href="#L-4556"><span class="linenos">4556</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-4557"><a href="#L-4557"><span class="linenos">4557</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="L-4558"><a href="#L-4558"><span class="linenos">4558</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
</span><span id="L-4559"><a href="#L-4559"><span class="linenos">4559</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
</span><span id="L-4560"><a href="#L-4560"><span class="linenos">4560</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
</span><span id="L-4561"><a href="#L-4561"><span class="linenos">4561</span></a>
</span><span id="L-4562"><a href="#L-4562"><span class="linenos">4562</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
</span><span id="L-4563"><a href="#L-4563"><span class="linenos">4563</span></a>
</span><span id="L-4564"><a href="#L-4564"><span class="linenos">4564</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">)</span>
</span><span id="L-4565"><a href="#L-4565"><span class="linenos">4565</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
</span><span id="L-4566"><a href="#L-4566"><span class="linenos">4566</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="L-4567"><a href="#L-4567"><span class="linenos">4567</span></a> <span class="k">return</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">parse_one</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4568"><a href="#L-4568"><span class="linenos">4568</span></a>
</span><span id="L-4569"><a href="#L-4569"><span class="linenos">4569</span></a>
</span><span id="L-4570"><a href="#L-4570"><span class="linenos">4570</span></a><span class="k">def</span> <span class="nf">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="L-4571"><a href="#L-4571"><span class="linenos">4571</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="n">instance</span>
</span><span id="L-4572"><a href="#L-4572"><span class="linenos">4572</span></a>
</span><span id="L-4573"><a href="#L-4573"><span class="linenos">4573</span></a>
</span><span id="L-4574"><a href="#L-4574"><span class="linenos">4574</span></a><span class="k">def</span> <span class="nf">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span>
</span><span id="L-4575"><a href="#L-4575"><span class="linenos">4575</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">)</span>
</span><span id="L-4576"><a href="#L-4576"><span class="linenos">4576</span></a>
</span><span id="L-4577"><a href="#L-4577"><span class="linenos">4577</span></a>
</span><span id="L-4578"><a href="#L-4578"><span class="linenos">4578</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span>
</span><span id="L-4579"><a href="#L-4579"><span class="linenos">4579</span></a> <span class="n">expression</span><span class="p">,</span>
</span><span id="L-4580"><a href="#L-4580"><span class="linenos">4580</span></a> <span class="n">instance</span><span class="p">,</span>
</span><span id="L-4581"><a href="#L-4581"><span class="linenos">4581</span></a> <span class="n">arg</span><span class="p">,</span>
</span><span id="L-4582"><a href="#L-4582"><span class="linenos">4582</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
</span><span id="L-4583"><a href="#L-4583"><span class="linenos">4583</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
</span><span id="L-4584"><a href="#L-4584"><span class="linenos">4584</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
</span><span id="L-4585"><a href="#L-4585"><span class="linenos">4585</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
</span><span id="L-4586"><a href="#L-4586"><span class="linenos">4586</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4587"><a href="#L-4587"><span class="linenos">4587</span></a><span class="p">):</span>
</span><span id="L-4588"><a href="#L-4588"><span class="linenos">4588</span></a> <span class="k">if</span> <span class="n">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span>
</span><span id="L-4589"><a href="#L-4589"><span class="linenos">4589</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
</span><span id="L-4590"><a href="#L-4590"><span class="linenos">4590</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="L-4591"><a href="#L-4591"><span class="linenos">4591</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
</span><span id="L-4592"><a href="#L-4592"><span class="linenos">4592</span></a> <span class="n">sql_or_expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="L-4593"><a href="#L-4593"><span class="linenos">4593</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
</span><span id="L-4594"><a href="#L-4594"><span class="linenos">4594</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
</span><span id="L-4595"><a href="#L-4595"><span class="linenos">4595</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-4596"><a href="#L-4596"><span class="linenos">4596</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4597"><a href="#L-4597"><span class="linenos">4597</span></a> <span class="p">)</span>
</span><span id="L-4598"><a href="#L-4598"><span class="linenos">4598</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span>
</span><span id="L-4599"><a href="#L-4599"><span class="linenos">4599</span></a> <span class="k">return</span> <span class="n">instance</span>
</span><span id="L-4600"><a href="#L-4600"><span class="linenos">4600</span></a>
</span><span id="L-4601"><a href="#L-4601"><span class="linenos">4601</span></a>
</span><span id="L-4602"><a href="#L-4602"><span class="linenos">4602</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="L-4603"><a href="#L-4603"><span class="linenos">4603</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-4604"><a href="#L-4604"><span class="linenos">4604</span></a> <span class="n">instance</span><span class="p">,</span>
</span><span id="L-4605"><a href="#L-4605"><span class="linenos">4605</span></a> <span class="n">arg</span><span class="p">,</span>
</span><span id="L-4606"><a href="#L-4606"><span class="linenos">4606</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
</span><span id="L-4607"><a href="#L-4607"><span class="linenos">4607</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
</span><span id="L-4608"><a href="#L-4608"><span class="linenos">4608</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
</span><span id="L-4609"><a href="#L-4609"><span class="linenos">4609</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
</span><span id="L-4610"><a href="#L-4610"><span class="linenos">4610</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
</span><span id="L-4611"><a href="#L-4611"><span class="linenos">4611</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
</span><span id="L-4612"><a href="#L-4612"><span class="linenos">4612</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4613"><a href="#L-4613"><span class="linenos">4613</span></a><span class="p">):</span>
</span><span id="L-4614"><a href="#L-4614"><span class="linenos">4614</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="L-4615"><a href="#L-4615"><span class="linenos">4615</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-4616"><a href="#L-4616"><span class="linenos">4616</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span>
</span><span id="L-4617"><a href="#L-4617"><span class="linenos">4617</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-4618"><a href="#L-4618"><span class="linenos">4618</span></a> <span class="k">if</span> <span class="n">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span>
</span><span id="L-4619"><a href="#L-4619"><span class="linenos">4619</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">expression</span><span class="p">])</span>
</span><span id="L-4620"><a href="#L-4620"><span class="linenos">4620</span></a>
</span><span id="L-4621"><a href="#L-4621"><span class="linenos">4621</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
</span><span id="L-4622"><a href="#L-4622"><span class="linenos">4622</span></a> <span class="n">expression</span><span class="p">,</span>
</span><span id="L-4623"><a href="#L-4623"><span class="linenos">4623</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
</span><span id="L-4624"><a href="#L-4624"><span class="linenos">4624</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-4625"><a href="#L-4625"><span class="linenos">4625</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
</span><span id="L-4626"><a href="#L-4626"><span class="linenos">4626</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4627"><a href="#L-4627"><span class="linenos">4627</span></a> <span class="p">)</span>
</span><span id="L-4628"><a href="#L-4628"><span class="linenos">4628</span></a> <span class="n">parsed</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span>
</span><span id="L-4629"><a href="#L-4629"><span class="linenos">4629</span></a>
</span><span id="L-4630"><a href="#L-4630"><span class="linenos">4630</span></a> <span class="n">existing</span> <span class="o">=</span> <span class="n">instance</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="n">arg</span><span class="p">)</span>
</span><span id="L-4631"><a href="#L-4631"><span class="linenos">4631</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing</span><span class="p">:</span>
</span><span id="L-4632"><a href="#L-4632"><span class="linenos">4632</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="n">existing</span><span class="o">.</span><span class="n">expressions</span> <span class="o">+</span> <span class="n">parsed</span>
</span><span id="L-4633"><a href="#L-4633"><span class="linenos">4633</span></a>
</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</span></a> <span class="n">child</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">parsed</span><span class="p">)</span>
</span><span id="L-4635"><a href="#L-4635"><span class="linenos">4635</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="p">(</span><span class="n">properties</span> <span class="ow">or</span> <span class="p">{})</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="L-4636"><a href="#L-4636"><span class="linenos">4636</span></a> <span class="n">child</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
</span><span id="L-4637"><a href="#L-4637"><span class="linenos">4637</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">child</span><span class="p">)</span>
</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</span></a>
</span><span id="L-4639"><a href="#L-4639"><span class="linenos">4639</span></a> <span class="k">return</span> <span class="n">instance</span>
</span><span id="L-4640"><a href="#L-4640"><span class="linenos">4640</span></a>
</span><span id="L-4641"><a href="#L-4641"><span class="linenos">4641</span></a>
</span><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span>
</span><span id="L-4643"><a href="#L-4643"><span class="linenos">4643</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-4644"><a href="#L-4644"><span class="linenos">4644</span></a> <span class="n">instance</span><span class="p">,</span>
</span><span id="L-4645"><a href="#L-4645"><span class="linenos">4645</span></a> <span class="n">arg</span><span class="p">,</span>
</span><span id="L-4646"><a href="#L-4646"><span class="linenos">4646</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
</span><span id="L-4647"><a href="#L-4647"><span class="linenos">4647</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
</span><span id="L-4648"><a href="#L-4648"><span class="linenos">4648</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
</span><span id="L-4649"><a href="#L-4649"><span class="linenos">4649</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
</span><span id="L-4650"><a href="#L-4650"><span class="linenos">4650</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
</span><span id="L-4651"><a href="#L-4651"><span class="linenos">4651</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4652"><a href="#L-4652"><span class="linenos">4652</span></a><span class="p">):</span>
</span><span id="L-4653"><a href="#L-4653"><span class="linenos">4653</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="L-4654"><a href="#L-4654"><span class="linenos">4654</span></a>
</span><span id="L-4655"><a href="#L-4655"><span class="linenos">4655</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span>
</span><span id="L-4656"><a href="#L-4656"><span class="linenos">4656</span></a> <span class="n">maybe_parse</span><span class="p">(</span>
</span><span id="L-4657"><a href="#L-4657"><span class="linenos">4657</span></a> <span class="n">sql_or_expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="L-4658"><a href="#L-4658"><span class="linenos">4658</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span>
</span><span id="L-4659"><a href="#L-4659"><span class="linenos">4659</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span>
</span><span id="L-4660"><a href="#L-4660"><span class="linenos">4660</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-4661"><a href="#L-4661"><span class="linenos">4661</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4662"><a href="#L-4662"><span class="linenos">4662</span></a> <span class="p">)</span>
</span><span id="L-4663"><a href="#L-4663"><span class="linenos">4663</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span>
</span><span id="L-4664"><a href="#L-4664"><span class="linenos">4664</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
</span><span id="L-4665"><a href="#L-4665"><span class="linenos">4665</span></a> <span class="p">]</span>
</span><span id="L-4666"><a href="#L-4666"><span class="linenos">4666</span></a>
</span><span id="L-4667"><a href="#L-4667"><span class="linenos">4667</span></a> <span class="n">existing_expressions</span> <span class="o">=</span> <span class="n">inst</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="n">arg</span><span class="p">)</span>
</span><span id="L-4668"><a href="#L-4668"><span class="linenos">4668</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing_expressions</span><span class="p">:</span>
</span><span id="L-4669"><a href="#L-4669"><span class="linenos">4669</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">existing_expressions</span> <span class="o">+</span> <span class="n">expressions</span>
</span><span id="L-4670"><a href="#L-4670"><span class="linenos">4670</span></a>
</span><span id="L-4671"><a href="#L-4671"><span class="linenos">4671</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">expressions</span><span class="p">)</span>
</span><span id="L-4672"><a href="#L-4672"><span class="linenos">4672</span></a> <span class="k">return</span> <span class="n">inst</span>
</span><span id="L-4673"><a href="#L-4673"><span class="linenos">4673</span></a>
</span><span id="L-4674"><a href="#L-4674"><span class="linenos">4674</span></a>
</span><span id="L-4675"><a href="#L-4675"><span class="linenos">4675</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="L-4676"><a href="#L-4676"><span class="linenos">4676</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</span></a> <span class="n">instance</span><span class="p">,</span>
</span><span id="L-4678"><a href="#L-4678"><span class="linenos">4678</span></a> <span class="n">arg</span><span class="p">,</span>
</span><span id="L-4679"><a href="#L-4679"><span class="linenos">4679</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
</span><span id="L-4680"><a href="#L-4680"><span class="linenos">4680</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
</span><span id="L-4681"><a href="#L-4681"><span class="linenos">4681</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
</span><span id="L-4682"><a href="#L-4682"><span class="linenos">4682</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
</span><span id="L-4683"><a href="#L-4683"><span class="linenos">4683</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4684"><a href="#L-4684"><span class="linenos">4684</span></a><span class="p">):</span>
</span><span id="L-4685"><a href="#L-4685"><span class="linenos">4685</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">exp</span> <span class="k">for</span> <span class="n">exp</span> <span class="ow">in</span> <span class="n">expressions</span> <span class="k">if</span> <span class="n">exp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">exp</span> <span class="o">!=</span> <span class="s2">&quot;&quot;</span><span class="p">]</span>
</span><span id="L-4686"><a href="#L-4686"><span class="linenos">4686</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span>
</span><span id="L-4687"><a href="#L-4687"><span class="linenos">4687</span></a> <span class="k">return</span> <span class="n">instance</span>
</span><span id="L-4688"><a href="#L-4688"><span class="linenos">4688</span></a>
</span><span id="L-4689"><a href="#L-4689"><span class="linenos">4689</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="L-4690"><a href="#L-4690"><span class="linenos">4690</span></a>
</span><span id="L-4691"><a href="#L-4691"><span class="linenos">4691</span></a> <span class="n">existing</span> <span class="o">=</span> <span class="n">inst</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="n">arg</span><span class="p">)</span>
</span><span id="L-4692"><a href="#L-4692"><span class="linenos">4692</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-4693"><a href="#L-4693"><span class="linenos">4693</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">existing</span><span class="o">.</span><span class="n">this</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="n">existing</span><span class="p">]</span> <span class="o">+</span> <span class="nb">list</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span>
</span><span id="L-4694"><a href="#L-4694"><span class="linenos">4694</span></a>
</span><span id="L-4695"><a href="#L-4695"><span class="linenos">4695</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4696"><a href="#L-4696"><span class="linenos">4696</span></a>
</span><span id="L-4697"><a href="#L-4697"><span class="linenos">4697</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">node</span><span class="p">)</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="n">node</span><span class="p">)</span>
</span><span id="L-4698"><a href="#L-4698"><span class="linenos">4698</span></a> <span class="k">return</span> <span class="n">inst</span>
</span><span id="L-4699"><a href="#L-4699"><span class="linenos">4699</span></a>
</span><span id="L-4700"><a href="#L-4700"><span class="linenos">4700</span></a>
</span><span id="L-4701"><a href="#L-4701"><span class="linenos">4701</span></a><span class="k">def</span> <span class="nf">_apply_cte_builder</span><span class="p">(</span>
</span><span id="L-4702"><a href="#L-4702"><span class="linenos">4702</span></a> <span class="n">instance</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span>
</span><span id="L-4703"><a href="#L-4703"><span class="linenos">4703</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-4704"><a href="#L-4704"><span class="linenos">4704</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-4705"><a href="#L-4705"><span class="linenos">4705</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4706"><a href="#L-4706"><span class="linenos">4706</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-4707"><a href="#L-4707"><span class="linenos">4707</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4708"><a href="#L-4708"><span class="linenos">4708</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-4709"><a href="#L-4709"><span class="linenos">4709</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4710"><a href="#L-4710"><span class="linenos">4710</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4712"><a href="#L-4712"><span class="linenos">4712</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">as_</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4713"><a href="#L-4713"><span class="linenos">4713</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">)</span>
</span><span id="L-4714"><a href="#L-4714"><span class="linenos">4714</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="L-4715"><a href="#L-4715"><span class="linenos">4715</span></a> <span class="n">cte</span><span class="p">,</span>
</span><span id="L-4716"><a href="#L-4716"><span class="linenos">4716</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;with&quot;</span><span class="p">,</span>
</span><span id="L-4718"><a href="#L-4718"><span class="linenos">4718</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="L-4719"><a href="#L-4719"><span class="linenos">4719</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-4720"><a href="#L-4720"><span class="linenos">4720</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span>
</span><span id="L-4721"><a href="#L-4721"><span class="linenos">4721</span></a> <span class="n">properties</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;recursive&quot;</span><span class="p">:</span> <span class="n">recursive</span> <span class="ow">or</span> <span class="kc">False</span><span class="p">},</span>
</span><span id="L-4722"><a href="#L-4722"><span class="linenos">4722</span></a> <span class="p">)</span>
</span><span id="L-4723"><a href="#L-4723"><span class="linenos">4723</span></a>
</span><span id="L-4724"><a href="#L-4724"><span class="linenos">4724</span></a>
</span><span id="L-4725"><a href="#L-4725"><span class="linenos">4725</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span>
</span><span id="L-4726"><a href="#L-4726"><span class="linenos">4726</span></a> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]],</span>
</span><span id="L-4727"><a href="#L-4727"><span class="linenos">4727</span></a> <span class="n">operator</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Connector</span><span class="p">],</span>
</span><span id="L-4728"><a href="#L-4728"><span class="linenos">4728</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4729"><a href="#L-4729"><span class="linenos">4729</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-4730"><a href="#L-4730"><span class="linenos">4730</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4731"><a href="#L-4731"><span class="linenos">4731</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="L-4732"><a href="#L-4732"><span class="linenos">4732</span></a> <span class="n">conditions</span> <span class="o">=</span> <span class="p">[</span>
</span><span id="L-4733"><a href="#L-4733"><span class="linenos">4733</span></a> <span class="n">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4734"><a href="#L-4734"><span class="linenos">4734</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span>
</span><span id="L-4735"><a href="#L-4735"><span class="linenos">4735</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
</span><span id="L-4736"><a href="#L-4736"><span class="linenos">4736</span></a> <span class="p">]</span>
</span><span id="L-4737"><a href="#L-4737"><span class="linenos">4737</span></a>
</span><span id="L-4738"><a href="#L-4738"><span class="linenos">4738</span></a> <span class="n">this</span><span class="p">,</span> <span class="o">*</span><span class="n">rest</span> <span class="o">=</span> <span class="n">conditions</span>
</span><span id="L-4739"><a href="#L-4739"><span class="linenos">4739</span></a> <span class="k">if</span> <span class="n">rest</span><span class="p">:</span>
</span><span id="L-4740"><a href="#L-4740"><span class="linenos">4740</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">)</span>
</span><span id="L-4741"><a href="#L-4741"><span class="linenos">4741</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">rest</span><span class="p">:</span>
</span><span id="L-4742"><a href="#L-4742"><span class="linenos">4742</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">operator</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
</span><span id="L-4743"><a href="#L-4743"><span class="linenos">4743</span></a>
</span><span id="L-4744"><a href="#L-4744"><span class="linenos">4744</span></a> <span class="k">return</span> <span class="n">this</span>
</span><span id="L-4745"><a href="#L-4745"><span class="linenos">4745</span></a>
</span><span id="L-4746"><a href="#L-4746"><span class="linenos">4746</span></a>
</span><span id="L-4747"><a href="#L-4747"><span class="linenos">4747</span></a><span class="k">def</span> <span class="nf">_wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span> <span class="o">|</span> <span class="n">Paren</span><span class="p">:</span>
</span><span id="L-4748"><a href="#L-4748"><span class="linenos">4748</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">kind</span><span class="p">)</span> <span class="k">else</span> <span class="n">expression</span>
</span><span id="L-4749"><a href="#L-4749"><span class="linenos">4749</span></a>
</span><span id="L-4750"><a href="#L-4750"><span class="linenos">4750</span></a>
</span><span id="L-4751"><a href="#L-4751"><span class="linenos">4751</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
</span><span id="L-4752"><a href="#L-4752"><span class="linenos">4752</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-4753"><a href="#L-4753"><span class="linenos">4753</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
</span><span id="L-4754"><a href="#L-4754"><span class="linenos">4754</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-4755"><a href="#L-4755"><span class="linenos">4755</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
</span><span id="L-4756"><a href="#L-4756"><span class="linenos">4756</span></a>
</span><span id="L-4757"><a href="#L-4757"><span class="linenos">4757</span></a><span class="sd"> Example:</span>
</span><span id="L-4758"><a href="#L-4758"><span class="linenos">4758</span></a><span class="sd"> &gt;&gt;&gt; union(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="L-4759"><a href="#L-4759"><span class="linenos">4759</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
</span><span id="L-4760"><a href="#L-4760"><span class="linenos">4760</span></a>
</span><span id="L-4761"><a href="#L-4761"><span class="linenos">4761</span></a><span class="sd"> Args:</span>
</span><span id="L-4762"><a href="#L-4762"><span class="linenos">4762</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
</span><span id="L-4763"><a href="#L-4763"><span class="linenos">4763</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-4764"><a href="#L-4764"><span class="linenos">4764</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
</span><span id="L-4765"><a href="#L-4765"><span class="linenos">4765</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-4766"><a href="#L-4766"><span class="linenos">4766</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="L-4767"><a href="#L-4767"><span class="linenos">4767</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-4769"><a href="#L-4769"><span class="linenos">4769</span></a>
</span><span id="L-4770"><a href="#L-4770"><span class="linenos">4770</span></a><span class="sd"> Returns:</span>
</span><span id="L-4771"><a href="#L-4771"><span class="linenos">4771</span></a><span class="sd"> The new Union instance.</span>
</span><span id="L-4772"><a href="#L-4772"><span class="linenos">4772</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-4773"><a href="#L-4773"><span class="linenos">4773</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4774"><a href="#L-4774"><span class="linenos">4774</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4775"><a href="#L-4775"><span class="linenos">4775</span></a>
</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</span></a> <span class="k">return</span> <span class="n">Union</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
</span><span id="L-4777"><a href="#L-4777"><span class="linenos">4777</span></a>
</span><span id="L-4778"><a href="#L-4778"><span class="linenos">4778</span></a>
</span><span id="L-4779"><a href="#L-4779"><span class="linenos">4779</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
</span><span id="L-4780"><a href="#L-4780"><span class="linenos">4780</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-4781"><a href="#L-4781"><span class="linenos">4781</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
</span><span id="L-4782"><a href="#L-4782"><span class="linenos">4782</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-4783"><a href="#L-4783"><span class="linenos">4783</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
</span><span id="L-4784"><a href="#L-4784"><span class="linenos">4784</span></a>
</span><span id="L-4785"><a href="#L-4785"><span class="linenos">4785</span></a><span class="sd"> Example:</span>
</span><span id="L-4786"><a href="#L-4786"><span class="linenos">4786</span></a><span class="sd"> &gt;&gt;&gt; intersect(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="L-4787"><a href="#L-4787"><span class="linenos">4787</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
</span><span id="L-4788"><a href="#L-4788"><span class="linenos">4788</span></a>
</span><span id="L-4789"><a href="#L-4789"><span class="linenos">4789</span></a><span class="sd"> Args:</span>
</span><span id="L-4790"><a href="#L-4790"><span class="linenos">4790</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
</span><span id="L-4791"><a href="#L-4791"><span class="linenos">4791</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-4792"><a href="#L-4792"><span class="linenos">4792</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
</span><span id="L-4793"><a href="#L-4793"><span class="linenos">4793</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-4794"><a href="#L-4794"><span class="linenos">4794</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="L-4795"><a href="#L-4795"><span class="linenos">4795</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-4796"><a href="#L-4796"><span class="linenos">4796</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-4797"><a href="#L-4797"><span class="linenos">4797</span></a>
</span><span id="L-4798"><a href="#L-4798"><span class="linenos">4798</span></a><span class="sd"> Returns:</span>
</span><span id="L-4799"><a href="#L-4799"><span class="linenos">4799</span></a><span class="sd"> The new Intersect instance.</span>
</span><span id="L-4800"><a href="#L-4800"><span class="linenos">4800</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-4801"><a href="#L-4801"><span class="linenos">4801</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4802"><a href="#L-4802"><span class="linenos">4802</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4803"><a href="#L-4803"><span class="linenos">4803</span></a>
</span><span id="L-4804"><a href="#L-4804"><span class="linenos">4804</span></a> <span class="k">return</span> <span class="n">Intersect</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
</span><span id="L-4805"><a href="#L-4805"><span class="linenos">4805</span></a>
</span><span id="L-4806"><a href="#L-4806"><span class="linenos">4806</span></a>
</span><span id="L-4807"><a href="#L-4807"><span class="linenos">4807</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
</span><span id="L-4808"><a href="#L-4808"><span class="linenos">4808</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-4809"><a href="#L-4809"><span class="linenos">4809</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
</span><span id="L-4810"><a href="#L-4810"><span class="linenos">4810</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-4811"><a href="#L-4811"><span class="linenos">4811</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
</span><span id="L-4812"><a href="#L-4812"><span class="linenos">4812</span></a>
</span><span id="L-4813"><a href="#L-4813"><span class="linenos">4813</span></a><span class="sd"> Example:</span>
</span><span id="L-4814"><a href="#L-4814"><span class="linenos">4814</span></a><span class="sd"> &gt;&gt;&gt; except_(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="L-4815"><a href="#L-4815"><span class="linenos">4815</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
</span><span id="L-4816"><a href="#L-4816"><span class="linenos">4816</span></a>
</span><span id="L-4817"><a href="#L-4817"><span class="linenos">4817</span></a><span class="sd"> Args:</span>
</span><span id="L-4818"><a href="#L-4818"><span class="linenos">4818</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
</span><span id="L-4819"><a href="#L-4819"><span class="linenos">4819</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-4820"><a href="#L-4820"><span class="linenos">4820</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
</span><span id="L-4821"><a href="#L-4821"><span class="linenos">4821</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="L-4822"><a href="#L-4822"><span class="linenos">4822</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="L-4823"><a href="#L-4823"><span class="linenos">4823</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-4824"><a href="#L-4824"><span class="linenos">4824</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="L-4825"><a href="#L-4825"><span class="linenos">4825</span></a>
</span><span id="L-4826"><a href="#L-4826"><span class="linenos">4826</span></a><span class="sd"> Returns:</span>
</span><span id="L-4827"><a href="#L-4827"><span class="linenos">4827</span></a><span class="sd"> The new Except instance.</span>
</span><span id="L-4828"><a href="#L-4828"><span class="linenos">4828</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4830"><a href="#L-4830"><span class="linenos">4830</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4831"><a href="#L-4831"><span class="linenos">4831</span></a>
</span><span id="L-4832"><a href="#L-4832"><span class="linenos">4832</span></a> <span class="k">return</span> <span class="n">Except</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
</span><span id="L-4833"><a href="#L-4833"><span class="linenos">4833</span></a>
</span><span id="L-4834"><a href="#L-4834"><span class="linenos">4834</span></a>
</span><span id="L-4835"><a href="#L-4835"><span class="linenos">4835</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-4836"><a href="#L-4836"><span class="linenos">4836</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-4837"><a href="#L-4837"><span class="linenos">4837</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
</span><span id="L-4838"><a href="#L-4838"><span class="linenos">4838</span></a>
</span><span id="L-4839"><a href="#L-4839"><span class="linenos">4839</span></a><span class="sd"> Example:</span>
</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;col1&quot;, &quot;col2&quot;).from_(&quot;tbl&quot;).sql()</span>
</span><span id="L-4841"><a href="#L-4841"><span class="linenos">4841</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
</span><span id="L-4842"><a href="#L-4842"><span class="linenos">4842</span></a>
</span><span id="L-4843"><a href="#L-4843"><span class="linenos">4843</span></a><span class="sd"> Args:</span>
</span><span id="L-4844"><a href="#L-4844"><span class="linenos">4844</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
</span><span id="L-4845"><a href="#L-4845"><span class="linenos">4845</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
</span><span id="L-4846"><a href="#L-4846"><span class="linenos">4846</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
</span><span id="L-4847"><a href="#L-4847"><span class="linenos">4847</span></a><span class="sd"> input expression is a SQL string).</span>
</span><span id="L-4848"><a href="#L-4848"><span class="linenos">4848</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
</span><span id="L-4849"><a href="#L-4849"><span class="linenos">4849</span></a><span class="sd"> that an input expression is a SQL string).</span>
</span><span id="L-4850"><a href="#L-4850"><span class="linenos">4850</span></a>
</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</span></a><span class="sd"> Returns:</span>
</span><span id="L-4852"><a href="#L-4852"><span class="linenos">4852</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
</span><span id="L-4853"><a href="#L-4853"><span class="linenos">4853</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-4854"><a href="#L-4854"><span class="linenos">4854</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4855"><a href="#L-4855"><span class="linenos">4855</span></a>
</span><span id="L-4856"><a href="#L-4856"><span class="linenos">4856</span></a>
</span><span id="L-4857"><a href="#L-4857"><span class="linenos">4857</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-4858"><a href="#L-4858"><span class="linenos">4858</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-4859"><a href="#L-4859"><span class="linenos">4859</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</span></a>
</span><span id="L-4861"><a href="#L-4861"><span class="linenos">4861</span></a><span class="sd"> Example:</span>
</span><span id="L-4862"><a href="#L-4862"><span class="linenos">4862</span></a><span class="sd"> &gt;&gt;&gt; from_(&quot;tbl&quot;).select(&quot;col1&quot;, &quot;col2&quot;).sql()</span>
</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a>
</span><span id="L-4865"><a href="#L-4865"><span class="linenos">4865</span></a><span class="sd"> Args:</span>
</span><span id="L-4866"><a href="#L-4866"><span class="linenos">4866</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
</span><span id="L-4868"><a href="#L-4868"><span class="linenos">4868</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
</span><span id="L-4869"><a href="#L-4869"><span class="linenos">4869</span></a><span class="sd"> input expression is a SQL string).</span>
</span><span id="L-4870"><a href="#L-4870"><span class="linenos">4870</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
</span><span id="L-4871"><a href="#L-4871"><span class="linenos">4871</span></a><span class="sd"> that the input expression is a SQL string).</span>
</span><span id="L-4872"><a href="#L-4872"><span class="linenos">4872</span></a>
</span><span id="L-4873"><a href="#L-4873"><span class="linenos">4873</span></a><span class="sd"> Returns:</span>
</span><span id="L-4874"><a href="#L-4874"><span class="linenos">4874</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
</span><span id="L-4875"><a href="#L-4875"><span class="linenos">4875</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-4876"><a href="#L-4876"><span class="linenos">4876</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4877"><a href="#L-4877"><span class="linenos">4877</span></a>
</span><span id="L-4878"><a href="#L-4878"><span class="linenos">4878</span></a>
</span><span id="L-4879"><a href="#L-4879"><span class="linenos">4879</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
</span><span id="L-4880"><a href="#L-4880"><span class="linenos">4880</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span>
</span><span id="L-4881"><a href="#L-4881"><span class="linenos">4881</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
</span><span id="L-4882"><a href="#L-4882"><span class="linenos">4882</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4883"><a href="#L-4883"><span class="linenos">4883</span></a> <span class="n">from_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4884"><a href="#L-4884"><span class="linenos">4884</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4886"><a href="#L-4886"><span class="linenos">4886</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
</span><span id="L-4887"><a href="#L-4887"><span class="linenos">4887</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-4888"><a href="#L-4888"><span class="linenos">4888</span></a><span class="sd"> Creates an update statement.</span>
</span><span id="L-4889"><a href="#L-4889"><span class="linenos">4889</span></a>
</span><span id="L-4890"><a href="#L-4890"><span class="linenos">4890</span></a><span class="sd"> Example:</span>
</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</span></a><span class="sd"> &gt;&gt;&gt; update(&quot;my_table&quot;, {&quot;x&quot;: 1, &quot;y&quot;: &quot;2&quot;, &quot;z&quot;: None}, from_=&quot;baz&quot;, where=&quot;id &gt; 1&quot;).sql()</span>
</span><span id="L-4892"><a href="#L-4892"><span class="linenos">4892</span></a><span class="sd"> &quot;UPDATE my_table SET x = 1, y = &#39;2&#39;, z = NULL FROM baz WHERE id &gt; 1&quot;</span>
</span><span id="L-4893"><a href="#L-4893"><span class="linenos">4893</span></a>
</span><span id="L-4894"><a href="#L-4894"><span class="linenos">4894</span></a><span class="sd"> Args:</span>
</span><span id="L-4895"><a href="#L-4895"><span class="linenos">4895</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
</span><span id="L-4897"><a href="#L-4897"><span class="linenos">4897</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
</span><span id="L-4899"><a href="#L-4899"><span class="linenos">4899</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-4901"><a href="#L-4901"><span class="linenos">4901</span></a>
</span><span id="L-4902"><a href="#L-4902"><span class="linenos">4902</span></a><span class="sd"> Returns:</span>
</span><span id="L-4903"><a href="#L-4903"><span class="linenos">4903</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-4905"><a href="#L-4905"><span class="linenos">4905</span></a> <span class="n">update_expr</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span>
</span><span id="L-4906"><a href="#L-4906"><span class="linenos">4906</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
</span><span id="L-4907"><a href="#L-4907"><span class="linenos">4907</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
</span><span id="L-4908"><a href="#L-4908"><span class="linenos">4908</span></a> <span class="p">[</span>
</span><span id="L-4909"><a href="#L-4909"><span class="linenos">4909</span></a> <span class="n">EQ</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">))</span>
</span><span id="L-4910"><a href="#L-4910"><span class="linenos">4910</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
</span><span id="L-4911"><a href="#L-4911"><span class="linenos">4911</span></a> <span class="p">],</span>
</span><span id="L-4912"><a href="#L-4912"><span class="linenos">4912</span></a> <span class="p">)</span>
</span><span id="L-4913"><a href="#L-4913"><span class="linenos">4913</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
</span><span id="L-4914"><a href="#L-4914"><span class="linenos">4914</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
</span><span id="L-4915"><a href="#L-4915"><span class="linenos">4915</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
</span><span id="L-4916"><a href="#L-4916"><span class="linenos">4916</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">from_</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="L-4917"><a href="#L-4917"><span class="linenos">4917</span></a> <span class="p">)</span>
</span><span id="L-4918"><a href="#L-4918"><span class="linenos">4918</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
</span><span id="L-4919"><a href="#L-4919"><span class="linenos">4919</span></a> <span class="n">where</span> <span class="o">=</span> <span class="n">Where</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">where</span><span class="p">)</span>
</span><span id="L-4920"><a href="#L-4920"><span class="linenos">4920</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
</span><span id="L-4921"><a href="#L-4921"><span class="linenos">4921</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
</span><span id="L-4922"><a href="#L-4922"><span class="linenos">4922</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
</span><span id="L-4923"><a href="#L-4923"><span class="linenos">4923</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;WHERE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="L-4924"><a href="#L-4924"><span class="linenos">4924</span></a> <span class="p">)</span>
</span><span id="L-4925"><a href="#L-4925"><span class="linenos">4925</span></a> <span class="k">return</span> <span class="n">update_expr</span>
</span><span id="L-4926"><a href="#L-4926"><span class="linenos">4926</span></a>
</span><span id="L-4927"><a href="#L-4927"><span class="linenos">4927</span></a>
</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
</span><span id="L-4929"><a href="#L-4929"><span class="linenos">4929</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-4930"><a href="#L-4930"><span class="linenos">4930</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4931"><a href="#L-4931"><span class="linenos">4931</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4932"><a href="#L-4932"><span class="linenos">4932</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4933"><a href="#L-4933"><span class="linenos">4933</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4934"><a href="#L-4934"><span class="linenos">4934</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
</span><span id="L-4935"><a href="#L-4935"><span class="linenos">4935</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-4936"><a href="#L-4936"><span class="linenos">4936</span></a><span class="sd"> Builds a delete statement.</span>
</span><span id="L-4937"><a href="#L-4937"><span class="linenos">4937</span></a>
</span><span id="L-4938"><a href="#L-4938"><span class="linenos">4938</span></a><span class="sd"> Example:</span>
</span><span id="L-4939"><a href="#L-4939"><span class="linenos">4939</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;my_table&quot;, where=&quot;id &gt; 1&quot;).sql()</span>
</span><span id="L-4940"><a href="#L-4940"><span class="linenos">4940</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
</span><span id="L-4941"><a href="#L-4941"><span class="linenos">4941</span></a>
</span><span id="L-4942"><a href="#L-4942"><span class="linenos">4942</span></a><span class="sd"> Args:</span>
</span><span id="L-4943"><a href="#L-4943"><span class="linenos">4943</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
</span><span id="L-4944"><a href="#L-4944"><span class="linenos">4944</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
</span><span id="L-4945"><a href="#L-4945"><span class="linenos">4945</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="L-4946"><a href="#L-4946"><span class="linenos">4946</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-4947"><a href="#L-4947"><span class="linenos">4947</span></a>
</span><span id="L-4948"><a href="#L-4948"><span class="linenos">4948</span></a><span class="sd"> Returns:</span>
</span><span id="L-4949"><a href="#L-4949"><span class="linenos">4949</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
</span><span id="L-4950"><a href="#L-4950"><span class="linenos">4950</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-4951"><a href="#L-4951"><span class="linenos">4951</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">Delete</span><span class="p">()</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4952"><a href="#L-4952"><span class="linenos">4952</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
</span><span id="L-4953"><a href="#L-4953"><span class="linenos">4953</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4954"><a href="#L-4954"><span class="linenos">4954</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
</span><span id="L-4955"><a href="#L-4955"><span class="linenos">4955</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4956"><a href="#L-4956"><span class="linenos">4956</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
</span><span id="L-4957"><a href="#L-4957"><span class="linenos">4957</span></a>
</span><span id="L-4958"><a href="#L-4958"><span class="linenos">4958</span></a>
</span><span id="L-4959"><a href="#L-4959"><span class="linenos">4959</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
</span><span id="L-4960"><a href="#L-4960"><span class="linenos">4960</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-4961"><a href="#L-4961"><span class="linenos">4961</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-4962"><a href="#L-4962"><span class="linenos">4962</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4963"><a href="#L-4963"><span class="linenos">4963</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4964"><a href="#L-4964"><span class="linenos">4964</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-4965"><a href="#L-4965"><span class="linenos">4965</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-4966"><a href="#L-4966"><span class="linenos">4966</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4967"><a href="#L-4967"><span class="linenos">4967</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
</span><span id="L-4968"><a href="#L-4968"><span class="linenos">4968</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-4969"><a href="#L-4969"><span class="linenos">4969</span></a><span class="sd"> Builds an INSERT statement.</span>
</span><span id="L-4970"><a href="#L-4970"><span class="linenos">4970</span></a>
</span><span id="L-4971"><a href="#L-4971"><span class="linenos">4971</span></a><span class="sd"> Example:</span>
</span><span id="L-4972"><a href="#L-4972"><span class="linenos">4972</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
</span><span id="L-4973"><a href="#L-4973"><span class="linenos">4973</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
</span><span id="L-4974"><a href="#L-4974"><span class="linenos">4974</span></a>
</span><span id="L-4975"><a href="#L-4975"><span class="linenos">4975</span></a><span class="sd"> Args:</span>
</span><span id="L-4976"><a href="#L-4976"><span class="linenos">4976</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
</span><span id="L-4977"><a href="#L-4977"><span class="linenos">4977</span></a><span class="sd"> into: the tbl to insert data to.</span>
</span><span id="L-4978"><a href="#L-4978"><span class="linenos">4978</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
</span><span id="L-4979"><a href="#L-4979"><span class="linenos">4979</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
</span><span id="L-4980"><a href="#L-4980"><span class="linenos">4980</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="L-4981"><a href="#L-4981"><span class="linenos">4981</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
</span><span id="L-4982"><a href="#L-4982"><span class="linenos">4982</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-4983"><a href="#L-4983"><span class="linenos">4983</span></a>
</span><span id="L-4984"><a href="#L-4984"><span class="linenos">4984</span></a><span class="sd"> Returns:</span>
</span><span id="L-4985"><a href="#L-4985"><span class="linenos">4985</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
</span><span id="L-4986"><a href="#L-4986"><span class="linenos">4986</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-4987"><a href="#L-4987"><span class="linenos">4987</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4988"><a href="#L-4988"><span class="linenos">4988</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-4989"><a href="#L-4989"><span class="linenos">4989</span></a>
</span><span id="L-4990"><a href="#L-4990"><span class="linenos">4990</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
</span><span id="L-4991"><a href="#L-4991"><span class="linenos">4991</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="L-4992"><a href="#L-4992"><span class="linenos">4992</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
</span><span id="L-4993"><a href="#L-4993"><span class="linenos">4993</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">),</span>
</span><span id="L-4994"><a href="#L-4994"><span class="linenos">4994</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
</span><span id="L-4995"><a href="#L-4995"><span class="linenos">4995</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
</span><span id="L-4996"><a href="#L-4996"><span class="linenos">4996</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
</span><span id="L-4997"><a href="#L-4997"><span class="linenos">4997</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-4998"><a href="#L-4998"><span class="linenos">4998</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-4999"><a href="#L-4999"><span class="linenos">4999</span></a> <span class="p">)</span>
</span><span id="L-5000"><a href="#L-5000"><span class="linenos">5000</span></a>
</span><span id="L-5001"><a href="#L-5001"><span class="linenos">5001</span></a> <span class="k">return</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
</span><span id="L-5002"><a href="#L-5002"><span class="linenos">5002</span></a>
</span><span id="L-5003"><a href="#L-5003"><span class="linenos">5003</span></a>
</span><span id="L-5004"><a href="#L-5004"><span class="linenos">5004</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
</span><span id="L-5005"><a href="#L-5005"><span class="linenos">5005</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-5006"><a href="#L-5006"><span class="linenos">5006</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
</span><span id="L-5007"><a href="#L-5007"><span class="linenos">5007</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5008"><a href="#L-5008"><span class="linenos">5008</span></a><span class="sd"> Initialize a logical condition expression.</span>
</span><span id="L-5009"><a href="#L-5009"><span class="linenos">5009</span></a>
</span><span id="L-5010"><a href="#L-5010"><span class="linenos">5010</span></a><span class="sd"> Example:</span>
</span><span id="L-5011"><a href="#L-5011"><span class="linenos">5011</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
</span><span id="L-5012"><a href="#L-5012"><span class="linenos">5012</span></a><span class="sd"> &#39;x = 1&#39;</span>
</span><span id="L-5013"><a href="#L-5013"><span class="linenos">5013</span></a>
</span><span id="L-5014"><a href="#L-5014"><span class="linenos">5014</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
</span><span id="L-5015"><a href="#L-5015"><span class="linenos">5015</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
</span><span id="L-5016"><a href="#L-5016"><span class="linenos">5016</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
</span><span id="L-5017"><a href="#L-5017"><span class="linenos">5017</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
</span><span id="L-5019"><a href="#L-5019"><span class="linenos">5019</span></a>
</span><span id="L-5020"><a href="#L-5020"><span class="linenos">5020</span></a><span class="sd"> Args:</span>
</span><span id="L-5021"><a href="#L-5021"><span class="linenos">5021</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
</span><span id="L-5022"><a href="#L-5022"><span class="linenos">5022</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="L-5023"><a href="#L-5023"><span class="linenos">5023</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</span></a><span class="sd"> input expression is a SQL string).</span>
</span><span id="L-5025"><a href="#L-5025"><span class="linenos">5025</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
</span><span id="L-5027"><a href="#L-5027"><span class="linenos">5027</span></a><span class="sd"> that the input expression is a SQL string).</span>
</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a>
</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a><span class="sd"> Returns:</span>
</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</span></a><span class="sd"> The new Condition instance</span>
</span><span id="L-5031"><a href="#L-5031"><span class="linenos">5031</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5032"><a href="#L-5032"><span class="linenos">5032</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
</span><span id="L-5033"><a href="#L-5033"><span class="linenos">5033</span></a> <span class="n">expression</span><span class="p">,</span>
</span><span id="L-5034"><a href="#L-5034"><span class="linenos">5034</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
</span><span id="L-5035"><a href="#L-5035"><span class="linenos">5035</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-5036"><a href="#L-5036"><span class="linenos">5036</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-5037"><a href="#L-5037"><span class="linenos">5037</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-5038"><a href="#L-5038"><span class="linenos">5038</span></a> <span class="p">)</span>
</span><span id="L-5039"><a href="#L-5039"><span class="linenos">5039</span></a>
</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</span></a>
</span><span id="L-5041"><a href="#L-5041"><span class="linenos">5041</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
</span><span id="L-5042"><a href="#L-5042"><span class="linenos">5042</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-5043"><a href="#L-5043"><span class="linenos">5043</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
</span><span id="L-5044"><a href="#L-5044"><span class="linenos">5044</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5045"><a href="#L-5045"><span class="linenos">5045</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
</span><span id="L-5046"><a href="#L-5046"><span class="linenos">5046</span></a>
</span><span id="L-5047"><a href="#L-5047"><span class="linenos">5047</span></a><span class="sd"> Example:</span>
</span><span id="L-5048"><a href="#L-5048"><span class="linenos">5048</span></a><span class="sd"> &gt;&gt;&gt; and_(&quot;x=1&quot;, and_(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
</span><span id="L-5049"><a href="#L-5049"><span class="linenos">5049</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
</span><span id="L-5050"><a href="#L-5050"><span class="linenos">5050</span></a>
</span><span id="L-5051"><a href="#L-5051"><span class="linenos">5051</span></a><span class="sd"> Args:</span>
</span><span id="L-5052"><a href="#L-5052"><span class="linenos">5052</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-5053"><a href="#L-5053"><span class="linenos">5053</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="L-5054"><a href="#L-5054"><span class="linenos">5054</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-5055"><a href="#L-5055"><span class="linenos">5055</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
</span><span id="L-5056"><a href="#L-5056"><span class="linenos">5056</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-5057"><a href="#L-5057"><span class="linenos">5057</span></a>
</span><span id="L-5058"><a href="#L-5058"><span class="linenos">5058</span></a><span class="sd"> Returns:</span>
</span><span id="L-5059"><a href="#L-5059"><span class="linenos">5059</span></a><span class="sd"> And: the new condition</span>
</span><span id="L-5060"><a href="#L-5060"><span class="linenos">5060</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5061"><a href="#L-5061"><span class="linenos">5061</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span><span id="L-5062"><a href="#L-5062"><span class="linenos">5062</span></a>
</span><span id="L-5063"><a href="#L-5063"><span class="linenos">5063</span></a>
</span><span id="L-5064"><a href="#L-5064"><span class="linenos">5064</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
</span><span id="L-5065"><a href="#L-5065"><span class="linenos">5065</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="L-5066"><a href="#L-5066"><span class="linenos">5066</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
</span><span id="L-5067"><a href="#L-5067"><span class="linenos">5067</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5068"><a href="#L-5068"><span class="linenos">5068</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
</span><span id="L-5069"><a href="#L-5069"><span class="linenos">5069</span></a>
</span><span id="L-5070"><a href="#L-5070"><span class="linenos">5070</span></a><span class="sd"> Example:</span>
</span><span id="L-5071"><a href="#L-5071"><span class="linenos">5071</span></a><span class="sd"> &gt;&gt;&gt; or_(&quot;x=1&quot;, or_(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
</span><span id="L-5072"><a href="#L-5072"><span class="linenos">5072</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
</span><span id="L-5073"><a href="#L-5073"><span class="linenos">5073</span></a>
</span><span id="L-5074"><a href="#L-5074"><span class="linenos">5074</span></a><span class="sd"> Args:</span>
</span><span id="L-5075"><a href="#L-5075"><span class="linenos">5075</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="L-5076"><a href="#L-5076"><span class="linenos">5076</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="L-5077"><a href="#L-5077"><span class="linenos">5077</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-5078"><a href="#L-5078"><span class="linenos">5078</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
</span><span id="L-5079"><a href="#L-5079"><span class="linenos">5079</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-5080"><a href="#L-5080"><span class="linenos">5080</span></a>
</span><span id="L-5081"><a href="#L-5081"><span class="linenos">5081</span></a><span class="sd"> Returns:</span>
</span><span id="L-5082"><a href="#L-5082"><span class="linenos">5082</span></a><span class="sd"> Or: the new condition</span>
</span><span id="L-5083"><a href="#L-5083"><span class="linenos">5083</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5084"><a href="#L-5084"><span class="linenos">5084</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span><span id="L-5085"><a href="#L-5085"><span class="linenos">5085</span></a>
</span><span id="L-5086"><a href="#L-5086"><span class="linenos">5086</span></a>
</span><span id="L-5087"><a href="#L-5087"><span class="linenos">5087</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
</span><span id="L-5088"><a href="#L-5088"><span class="linenos">5088</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5089"><a href="#L-5089"><span class="linenos">5089</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
</span><span id="L-5090"><a href="#L-5090"><span class="linenos">5090</span></a>
</span><span id="L-5091"><a href="#L-5091"><span class="linenos">5091</span></a><span class="sd"> Example:</span>
</span><span id="L-5092"><a href="#L-5092"><span class="linenos">5092</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
</span><span id="L-5093"><a href="#L-5093"><span class="linenos">5093</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
</span><span id="L-5094"><a href="#L-5094"><span class="linenos">5094</span></a>
</span><span id="L-5095"><a href="#L-5095"><span class="linenos">5095</span></a><span class="sd"> Args:</span>
</span><span id="L-5096"><a href="#L-5096"><span class="linenos">5096</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="L-5097"><a href="#L-5097"><span class="linenos">5097</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="L-5098"><a href="#L-5098"><span class="linenos">5098</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-5099"><a href="#L-5099"><span class="linenos">5099</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
</span><span id="L-5100"><a href="#L-5100"><span class="linenos">5100</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-5101"><a href="#L-5101"><span class="linenos">5101</span></a>
</span><span id="L-5102"><a href="#L-5102"><span class="linenos">5102</span></a><span class="sd"> Returns:</span>
</span><span id="L-5103"><a href="#L-5103"><span class="linenos">5103</span></a><span class="sd"> The new condition.</span>
</span><span id="L-5104"><a href="#L-5104"><span class="linenos">5104</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5105"><a href="#L-5105"><span class="linenos">5105</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
</span><span id="L-5106"><a href="#L-5106"><span class="linenos">5106</span></a> <span class="n">expression</span><span class="p">,</span>
</span><span id="L-5107"><a href="#L-5107"><span class="linenos">5107</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="L-5108"><a href="#L-5108"><span class="linenos">5108</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="L-5109"><a href="#L-5109"><span class="linenos">5109</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-5110"><a href="#L-5110"><span class="linenos">5110</span></a> <span class="p">)</span>
</span><span id="L-5111"><a href="#L-5111"><span class="linenos">5111</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
</span><span id="L-5112"><a href="#L-5112"><span class="linenos">5112</span></a>
</span><span id="L-5113"><a href="#L-5113"><span class="linenos">5113</span></a>
</span><span id="L-5114"><a href="#L-5114"><span class="linenos">5114</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
</span><span id="L-5115"><a href="#L-5115"><span class="linenos">5115</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5116"><a href="#L-5116"><span class="linenos">5116</span></a><span class="sd"> Wrap an expression in parentheses.</span>
</span><span id="L-5117"><a href="#L-5117"><span class="linenos">5117</span></a>
</span><span id="L-5118"><a href="#L-5118"><span class="linenos">5118</span></a><span class="sd"> Example:</span>
</span><span id="L-5119"><a href="#L-5119"><span class="linenos">5119</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
</span><span id="L-5120"><a href="#L-5120"><span class="linenos">5120</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
</span><span id="L-5121"><a href="#L-5121"><span class="linenos">5121</span></a>
</span><span id="L-5122"><a href="#L-5122"><span class="linenos">5122</span></a><span class="sd"> Args:</span>
</span><span id="L-5123"><a href="#L-5123"><span class="linenos">5123</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="L-5124"><a href="#L-5124"><span class="linenos">5124</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="L-5125"><a href="#L-5125"><span class="linenos">5125</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
</span><span id="L-5126"><a href="#L-5126"><span class="linenos">5126</span></a>
</span><span id="L-5127"><a href="#L-5127"><span class="linenos">5127</span></a><span class="sd"> Returns:</span>
</span><span id="L-5128"><a href="#L-5128"><span class="linenos">5128</span></a><span class="sd"> The wrapped expression.</span>
</span><span id="L-5129"><a href="#L-5129"><span class="linenos">5129</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5130"><a href="#L-5130"><span class="linenos">5130</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
</span><span id="L-5131"><a href="#L-5131"><span class="linenos">5131</span></a>
</span><span id="L-5132"><a href="#L-5132"><span class="linenos">5132</span></a>
</span><span id="L-5133"><a href="#L-5133"><span class="linenos">5133</span></a><span class="n">SAFE_IDENTIFIER_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;^[_a-zA-Z][\w]*$&quot;</span><span class="p">)</span>
</span><span id="L-5134"><a href="#L-5134"><span class="linenos">5134</span></a>
</span><span id="L-5135"><a href="#L-5135"><span class="linenos">5135</span></a>
</span><span id="L-5136"><a href="#L-5136"><span class="linenos">5136</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
</span><span id="L-5137"><a href="#L-5137"><span class="linenos">5137</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-5138"><a href="#L-5138"><span class="linenos">5138</span></a> <span class="o">...</span>
</span><span id="L-5139"><a href="#L-5139"><span class="linenos">5139</span></a>
</span><span id="L-5140"><a href="#L-5140"><span class="linenos">5140</span></a>
</span><span id="L-5141"><a href="#L-5141"><span class="linenos">5141</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
</span><span id="L-5142"><a href="#L-5142"><span class="linenos">5142</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span>
</span><span id="L-5143"><a href="#L-5143"><span class="linenos">5143</span></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-5144"><a href="#L-5144"><span class="linenos">5144</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Identifier</span><span class="p">:</span>
</span><span id="L-5145"><a href="#L-5145"><span class="linenos">5145</span></a> <span class="o">...</span>
</span><span id="L-5146"><a href="#L-5146"><span class="linenos">5146</span></a>
</span><span id="L-5147"><a href="#L-5147"><span class="linenos">5147</span></a>
</span><span id="L-5148"><a href="#L-5148"><span class="linenos">5148</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="L-5149"><a href="#L-5149"><span class="linenos">5149</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
</span><span id="L-5150"><a href="#L-5150"><span class="linenos">5150</span></a>
</span><span id="L-5151"><a href="#L-5151"><span class="linenos">5151</span></a><span class="sd"> Args:</span>
</span><span id="L-5152"><a href="#L-5152"><span class="linenos">5152</span></a><span class="sd"> name: The name to turn into an identifier.</span>
</span><span id="L-5153"><a href="#L-5153"><span class="linenos">5153</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
</span><span id="L-5154"><a href="#L-5154"><span class="linenos">5154</span></a><span class="sd"> copy: Whether or not to copy a passed in Identefier node.</span>
</span><span id="L-5155"><a href="#L-5155"><span class="linenos">5155</span></a>
</span><span id="L-5156"><a href="#L-5156"><span class="linenos">5156</span></a><span class="sd"> Returns:</span>
</span><span id="L-5157"><a href="#L-5157"><span class="linenos">5157</span></a><span class="sd"> The identifier ast node.</span>
</span><span id="L-5158"><a href="#L-5158"><span class="linenos">5158</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5159"><a href="#L-5159"><span class="linenos">5159</span></a>
</span><span id="L-5160"><a href="#L-5160"><span class="linenos">5160</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-5161"><a href="#L-5161"><span class="linenos">5161</span></a> <span class="k">return</span> <span class="kc">None</span>
</span><span id="L-5162"><a href="#L-5162"><span class="linenos">5162</span></a>
</span><span id="L-5163"><a href="#L-5163"><span class="linenos">5163</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">):</span>
</span><span id="L-5164"><a href="#L-5164"><span class="linenos">5164</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="L-5165"><a href="#L-5165"><span class="linenos">5165</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="L-5166"><a href="#L-5166"><span class="linenos">5166</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
</span><span id="L-5167"><a href="#L-5167"><span class="linenos">5167</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
</span><span id="L-5168"><a href="#L-5168"><span class="linenos">5168</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span>
</span><span id="L-5169"><a href="#L-5169"><span class="linenos">5169</span></a> <span class="p">)</span>
</span><span id="L-5170"><a href="#L-5170"><span class="linenos">5170</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-5171"><a href="#L-5171"><span class="linenos">5171</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Name needs to be a string or an Identifier, got: </span><span class="si">{</span><span class="n">name</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="L-5172"><a href="#L-5172"><span class="linenos">5172</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span><span id="L-5173"><a href="#L-5173"><span class="linenos">5173</span></a>
</span><span id="L-5174"><a href="#L-5174"><span class="linenos">5174</span></a>
</span><span id="L-5175"><a href="#L-5175"><span class="linenos">5175</span></a><span class="n">INTERVAL_STRING_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">&quot;\s*([0-9]+)\s*([a-zA-Z]+)\s*&quot;</span><span class="p">)</span>
</span><span id="L-5176"><a href="#L-5176"><span class="linenos">5176</span></a>
</span><span id="L-5177"><a href="#L-5177"><span class="linenos">5177</span></a>
</span><span id="L-5178"><a href="#L-5178"><span class="linenos">5178</span></a><span class="k">def</span> <span class="nf">to_interval</span><span class="p">(</span><span class="n">interval</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Literal</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Interval</span><span class="p">:</span>
</span><span id="L-5179"><a href="#L-5179"><span class="linenos">5179</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an interval expression from a string like &#39;1 day&#39; or &#39;5 months&#39;.&quot;&quot;&quot;</span>
</span><span id="L-5180"><a href="#L-5180"><span class="linenos">5180</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">interval</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span>
</span><span id="L-5181"><a href="#L-5181"><span class="linenos">5181</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span>
</span><span id="L-5182"><a href="#L-5182"><span class="linenos">5182</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Invalid interval string.&quot;</span><span class="p">)</span>
</span><span id="L-5183"><a href="#L-5183"><span class="linenos">5183</span></a>
</span><span id="L-5184"><a href="#L-5184"><span class="linenos">5184</span></a> <span class="n">interval</span> <span class="o">=</span> <span class="n">interval</span><span class="o">.</span><span class="n">this</span>
</span><span id="L-5185"><a href="#L-5185"><span class="linenos">5185</span></a>
</span><span id="L-5186"><a href="#L-5186"><span class="linenos">5186</span></a> <span class="n">interval_parts</span> <span class="o">=</span> <span class="n">INTERVAL_STRING_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">interval</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="L-5187"><a href="#L-5187"><span class="linenos">5187</span></a>
</span><span id="L-5188"><a href="#L-5188"><span class="linenos">5188</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span>
</span><span id="L-5189"><a href="#L-5189"><span class="linenos">5189</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Invalid interval string.&quot;</span><span class="p">)</span>
</span><span id="L-5190"><a href="#L-5190"><span class="linenos">5190</span></a>
</span><span id="L-5191"><a href="#L-5191"><span class="linenos">5191</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
</span><span id="L-5192"><a href="#L-5192"><span class="linenos">5192</span></a> <span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)),</span>
</span><span id="L-5193"><a href="#L-5193"><span class="linenos">5193</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span>
</span><span id="L-5194"><a href="#L-5194"><span class="linenos">5194</span></a> <span class="p">)</span>
</span><span id="L-5195"><a href="#L-5195"><span class="linenos">5195</span></a>
</span><span id="L-5196"><a href="#L-5196"><span class="linenos">5196</span></a>
</span><span id="L-5197"><a href="#L-5197"><span class="linenos">5197</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
</span><span id="L-5198"><a href="#L-5198"><span class="linenos">5198</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
</span><span id="L-5199"><a href="#L-5199"><span class="linenos">5199</span></a> <span class="o">...</span>
</span><span id="L-5200"><a href="#L-5200"><span class="linenos">5200</span></a>
</span><span id="L-5201"><a href="#L-5201"><span class="linenos">5201</span></a>
</span><span id="L-5202"><a href="#L-5202"><span class="linenos">5202</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
</span><span id="L-5203"><a href="#L-5203"><span class="linenos">5203</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-5204"><a href="#L-5204"><span class="linenos">5204</span></a> <span class="o">...</span>
</span><span id="L-5205"><a href="#L-5205"><span class="linenos">5205</span></a>
</span><span id="L-5206"><a href="#L-5206"><span class="linenos">5206</span></a>
</span><span id="L-5207"><a href="#L-5207"><span class="linenos">5207</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
</span><span id="L-5208"><a href="#L-5208"><span class="linenos">5208</span></a> <span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
</span><span id="L-5209"><a href="#L-5209"><span class="linenos">5209</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
</span><span id="L-5210"><a href="#L-5210"><span class="linenos">5210</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5211"><a href="#L-5211"><span class="linenos">5211</span></a><span class="sd"> Create a table expression from a `[catalog].[schema].[table]` sql path. Catalog and schema are optional.</span>
</span><span id="L-5212"><a href="#L-5212"><span class="linenos">5212</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
</span><span id="L-5213"><a href="#L-5213"><span class="linenos">5213</span></a>
</span><span id="L-5214"><a href="#L-5214"><span class="linenos">5214</span></a><span class="sd"> Args:</span>
</span><span id="L-5215"><a href="#L-5215"><span class="linenos">5215</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
</span><span id="L-5216"><a href="#L-5216"><span class="linenos">5216</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
</span><span id="L-5217"><a href="#L-5217"><span class="linenos">5217</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
</span><span id="L-5218"><a href="#L-5218"><span class="linenos">5218</span></a>
</span><span id="L-5219"><a href="#L-5219"><span class="linenos">5219</span></a><span class="sd"> Returns:</span>
</span><span id="L-5220"><a href="#L-5220"><span class="linenos">5220</span></a><span class="sd"> A table expression.</span>
</span><span id="L-5221"><a href="#L-5221"><span class="linenos">5221</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5222"><a href="#L-5222"><span class="linenos">5222</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
</span><span id="L-5223"><a href="#L-5223"><span class="linenos">5223</span></a> <span class="k">return</span> <span class="n">sql_path</span>
</span><span id="L-5224"><a href="#L-5224"><span class="linenos">5224</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="L-5225"><a href="#L-5225"><span class="linenos">5225</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="L-5226"><a href="#L-5226"><span class="linenos">5226</span></a>
</span><span id="L-5227"><a href="#L-5227"><span class="linenos">5227</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
</span><span id="L-5228"><a href="#L-5228"><span class="linenos">5228</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
</span><span id="L-5229"><a href="#L-5229"><span class="linenos">5229</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="L-5230"><a href="#L-5230"><span class="linenos">5230</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
</span><span id="L-5231"><a href="#L-5231"><span class="linenos">5231</span></a>
</span><span id="L-5232"><a href="#L-5232"><span class="linenos">5232</span></a> <span class="k">return</span> <span class="n">table</span>
</span><span id="L-5233"><a href="#L-5233"><span class="linenos">5233</span></a>
</span><span id="L-5234"><a href="#L-5234"><span class="linenos">5234</span></a>
</span><span id="L-5235"><a href="#L-5235"><span class="linenos">5235</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
</span><span id="L-5236"><a href="#L-5236"><span class="linenos">5236</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5237"><a href="#L-5237"><span class="linenos">5237</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
</span><span id="L-5238"><a href="#L-5238"><span class="linenos">5238</span></a>
</span><span id="L-5239"><a href="#L-5239"><span class="linenos">5239</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
</span><span id="L-5240"><a href="#L-5240"><span class="linenos">5240</span></a>
</span><span id="L-5241"><a href="#L-5241"><span class="linenos">5241</span></a><span class="sd"> Args:</span>
</span><span id="L-5242"><a href="#L-5242"><span class="linenos">5242</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
</span><span id="L-5243"><a href="#L-5243"><span class="linenos">5243</span></a><span class="sd"> Returns:</span>
</span><span id="L-5244"><a href="#L-5244"><span class="linenos">5244</span></a><span class="sd"> Table: A column expression</span>
</span><span id="L-5245"><a href="#L-5245"><span class="linenos">5245</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5246"><a href="#L-5246"><span class="linenos">5246</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
</span><span id="L-5247"><a href="#L-5247"><span class="linenos">5247</span></a> <span class="k">return</span> <span class="n">sql_path</span>
</span><span id="L-5248"><a href="#L-5248"><span class="linenos">5248</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="L-5249"><a href="#L-5249"><span class="linenos">5249</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="L-5250"><a href="#L-5250"><span class="linenos">5250</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="L-5251"><a href="#L-5251"><span class="linenos">5251</span></a>
</span><span id="L-5252"><a href="#L-5252"><span class="linenos">5252</span></a>
</span><span id="L-5253"><a href="#L-5253"><span class="linenos">5253</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
</span><span id="L-5254"><a href="#L-5254"><span class="linenos">5254</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-5255"><a href="#L-5255"><span class="linenos">5255</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
</span><span id="L-5256"><a href="#L-5256"><span class="linenos">5256</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="L-5257"><a href="#L-5257"><span class="linenos">5257</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5258"><a href="#L-5258"><span class="linenos">5258</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5259"><a href="#L-5259"><span class="linenos">5259</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="L-5260"><a href="#L-5260"><span class="linenos">5260</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-5261"><a href="#L-5261"><span class="linenos">5261</span></a><span class="p">):</span>
</span><span id="L-5262"><a href="#L-5262"><span class="linenos">5262</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
</span><span id="L-5263"><a href="#L-5263"><span class="linenos">5263</span></a>
</span><span id="L-5264"><a href="#L-5264"><span class="linenos">5264</span></a><span class="sd"> Example:</span>
</span><span id="L-5265"><a href="#L-5265"><span class="linenos">5265</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
</span><span id="L-5266"><a href="#L-5266"><span class="linenos">5266</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
</span><span id="L-5267"><a href="#L-5267"><span class="linenos">5267</span></a>
</span><span id="L-5268"><a href="#L-5268"><span class="linenos">5268</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;(select 1, 2)&#39;, &#39;bar&#39;, table=[&#39;a&#39;, &#39;b&#39;]).sql()</span>
</span><span id="L-5269"><a href="#L-5269"><span class="linenos">5269</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
</span><span id="L-5270"><a href="#L-5270"><span class="linenos">5270</span></a>
</span><span id="L-5271"><a href="#L-5271"><span class="linenos">5271</span></a><span class="sd"> Args:</span>
</span><span id="L-5272"><a href="#L-5272"><span class="linenos">5272</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
</span><span id="L-5273"><a href="#L-5273"><span class="linenos">5273</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="L-5274"><a href="#L-5274"><span class="linenos">5274</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
</span><span id="L-5275"><a href="#L-5275"><span class="linenos">5275</span></a><span class="sd"> special characters it is quoted.</span>
</span><span id="L-5276"><a href="#L-5276"><span class="linenos">5276</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span>
</span><span id="L-5277"><a href="#L-5277"><span class="linenos">5277</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
</span><span id="L-5278"><a href="#L-5278"><span class="linenos">5278</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-5279"><a href="#L-5279"><span class="linenos">5279</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
</span><span id="L-5280"><a href="#L-5280"><span class="linenos">5280</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-5281"><a href="#L-5281"><span class="linenos">5281</span></a>
</span><span id="L-5282"><a href="#L-5282"><span class="linenos">5282</span></a><span class="sd"> Returns:</span>
</span><span id="L-5283"><a href="#L-5283"><span class="linenos">5283</span></a><span class="sd"> Alias: the aliased expression</span>
</span><span id="L-5284"><a href="#L-5284"><span class="linenos">5284</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5285"><a href="#L-5285"><span class="linenos">5285</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-5286"><a href="#L-5286"><span class="linenos">5286</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span>
</span><span id="L-5287"><a href="#L-5287"><span class="linenos">5287</span></a>
</span><span id="L-5288"><a href="#L-5288"><span class="linenos">5288</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
</span><span id="L-5289"><a href="#L-5289"><span class="linenos">5289</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
</span><span id="L-5290"><a href="#L-5290"><span class="linenos">5290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span>
</span><span id="L-5291"><a href="#L-5291"><span class="linenos">5291</span></a>
</span><span id="L-5292"><a href="#L-5292"><span class="linenos">5292</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span>
</span><span id="L-5293"><a href="#L-5293"><span class="linenos">5293</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">table</span><span class="p">:</span>
</span><span id="L-5294"><a href="#L-5294"><span class="linenos">5294</span></a> <span class="n">table_alias</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">,</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">))</span>
</span><span id="L-5295"><a href="#L-5295"><span class="linenos">5295</span></a>
</span><span id="L-5296"><a href="#L-5296"><span class="linenos">5296</span></a> <span class="k">return</span> <span class="n">exp</span>
</span><span id="L-5297"><a href="#L-5297"><span class="linenos">5297</span></a>
</span><span id="L-5298"><a href="#L-5298"><span class="linenos">5298</span></a> <span class="c1"># We don&#39;t set the &quot;alias&quot; arg for Window expressions, because that would add an IDENTIFIER node in</span>
</span><span id="L-5299"><a href="#L-5299"><span class="linenos">5299</span></a> <span class="c1"># the AST, representing a &quot;named_window&quot; [1] construct (eg. bigquery). What we want is an ALIAS node</span>
</span><span id="L-5300"><a href="#L-5300"><span class="linenos">5300</span></a> <span class="c1"># for the complete Window expression.</span>
</span><span id="L-5301"><a href="#L-5301"><span class="linenos">5301</span></a> <span class="c1">#</span>
</span><span id="L-5302"><a href="#L-5302"><span class="linenos">5302</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
</span><span id="L-5303"><a href="#L-5303"><span class="linenos">5303</span></a>
</span><span id="L-5304"><a href="#L-5304"><span class="linenos">5304</span></a> <span class="k">if</span> <span class="s2">&quot;alias&quot;</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">arg_types</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exp</span><span class="p">,</span> <span class="n">Window</span><span class="p">):</span>
</span><span id="L-5305"><a href="#L-5305"><span class="linenos">5305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span>
</span><span id="L-5306"><a href="#L-5306"><span class="linenos">5306</span></a> <span class="k">return</span> <span class="n">exp</span>
</span><span id="L-5307"><a href="#L-5307"><span class="linenos">5307</span></a> <span class="k">return</span> <span class="n">Alias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
</span><span id="L-5308"><a href="#L-5308"><span class="linenos">5308</span></a>
</span><span id="L-5309"><a href="#L-5309"><span class="linenos">5309</span></a>
</span><span id="L-5310"><a href="#L-5310"><span class="linenos">5310</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
</span><span id="L-5311"><a href="#L-5311"><span class="linenos">5311</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="L-5312"><a href="#L-5312"><span class="linenos">5312</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5313"><a href="#L-5313"><span class="linenos">5313</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5314"><a href="#L-5314"><span class="linenos">5314</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="L-5315"><a href="#L-5315"><span class="linenos">5315</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="L-5316"><a href="#L-5316"><span class="linenos">5316</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5317"><a href="#L-5317"><span class="linenos">5317</span></a><span class="sd"> Build a subquery expression.</span>
</span><span id="L-5318"><a href="#L-5318"><span class="linenos">5318</span></a>
</span><span id="L-5319"><a href="#L-5319"><span class="linenos">5319</span></a><span class="sd"> Example:</span>
</span><span id="L-5320"><a href="#L-5320"><span class="linenos">5320</span></a><span class="sd"> &gt;&gt;&gt; subquery(&#39;select x from tbl&#39;, &#39;bar&#39;).select(&#39;x&#39;).sql()</span>
</span><span id="L-5321"><a href="#L-5321"><span class="linenos">5321</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
</span><span id="L-5322"><a href="#L-5322"><span class="linenos">5322</span></a>
</span><span id="L-5323"><a href="#L-5323"><span class="linenos">5323</span></a><span class="sd"> Args:</span>
</span><span id="L-5324"><a href="#L-5324"><span class="linenos">5324</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
</span><span id="L-5325"><a href="#L-5325"><span class="linenos">5325</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="L-5326"><a href="#L-5326"><span class="linenos">5326</span></a><span class="sd"> alias: the alias name to use.</span>
</span><span id="L-5327"><a href="#L-5327"><span class="linenos">5327</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="L-5328"><a href="#L-5328"><span class="linenos">5328</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="L-5329"><a href="#L-5329"><span class="linenos">5329</span></a>
</span><span id="L-5330"><a href="#L-5330"><span class="linenos">5330</span></a><span class="sd"> Returns:</span>
</span><span id="L-5331"><a href="#L-5331"><span class="linenos">5331</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
</span><span id="L-5332"><a href="#L-5332"><span class="linenos">5332</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5333"><a href="#L-5333"><span class="linenos">5333</span></a>
</span><span id="L-5334"><a href="#L-5334"><span class="linenos">5334</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span>
</span><span id="L-5335"><a href="#L-5335"><span class="linenos">5335</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-5336"><a href="#L-5336"><span class="linenos">5336</span></a>
</span><span id="L-5337"><a href="#L-5337"><span class="linenos">5337</span></a>
</span><span id="L-5338"><a href="#L-5338"><span class="linenos">5338</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
</span><span id="L-5339"><a href="#L-5339"><span class="linenos">5339</span></a> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
</span><span id="L-5340"><a href="#L-5340"><span class="linenos">5340</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5341"><a href="#L-5341"><span class="linenos">5341</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5342"><a href="#L-5342"><span class="linenos">5342</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5343"><a href="#L-5343"><span class="linenos">5343</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5344"><a href="#L-5344"><span class="linenos">5344</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
</span><span id="L-5345"><a href="#L-5345"><span class="linenos">5345</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5346"><a href="#L-5346"><span class="linenos">5346</span></a><span class="sd"> Build a Column.</span>
</span><span id="L-5347"><a href="#L-5347"><span class="linenos">5347</span></a>
</span><span id="L-5348"><a href="#L-5348"><span class="linenos">5348</span></a><span class="sd"> Args:</span>
</span><span id="L-5349"><a href="#L-5349"><span class="linenos">5349</span></a><span class="sd"> col: Column name.</span>
</span><span id="L-5350"><a href="#L-5350"><span class="linenos">5350</span></a><span class="sd"> table: Table name.</span>
</span><span id="L-5351"><a href="#L-5351"><span class="linenos">5351</span></a><span class="sd"> db: Database name.</span>
</span><span id="L-5352"><a href="#L-5352"><span class="linenos">5352</span></a><span class="sd"> catalog: Catalog name.</span>
</span><span id="L-5353"><a href="#L-5353"><span class="linenos">5353</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
</span><span id="L-5354"><a href="#L-5354"><span class="linenos">5354</span></a>
</span><span id="L-5355"><a href="#L-5355"><span class="linenos">5355</span></a><span class="sd"> Returns:</span>
</span><span id="L-5356"><a href="#L-5356"><span class="linenos">5356</span></a><span class="sd"> The new Column instance.</span>
</span><span id="L-5357"><a href="#L-5357"><span class="linenos">5357</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5358"><a href="#L-5358"><span class="linenos">5358</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
</span><span id="L-5359"><a href="#L-5359"><span class="linenos">5359</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="L-5360"><a href="#L-5360"><span class="linenos">5360</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="L-5361"><a href="#L-5361"><span class="linenos">5361</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="L-5362"><a href="#L-5362"><span class="linenos">5362</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="L-5363"><a href="#L-5363"><span class="linenos">5363</span></a> <span class="p">)</span>
</span><span id="L-5364"><a href="#L-5364"><span class="linenos">5364</span></a>
</span><span id="L-5365"><a href="#L-5365"><span class="linenos">5365</span></a>
</span><span id="L-5366"><a href="#L-5366"><span class="linenos">5366</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
</span><span id="L-5367"><a href="#L-5367"><span class="linenos">5367</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
</span><span id="L-5368"><a href="#L-5368"><span class="linenos">5368</span></a>
</span><span id="L-5369"><a href="#L-5369"><span class="linenos">5369</span></a><span class="sd"> Example:</span>
</span><span id="L-5370"><a href="#L-5370"><span class="linenos">5370</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
</span><span id="L-5371"><a href="#L-5371"><span class="linenos">5371</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
</span><span id="L-5372"><a href="#L-5372"><span class="linenos">5372</span></a>
</span><span id="L-5373"><a href="#L-5373"><span class="linenos">5373</span></a><span class="sd"> Args:</span>
</span><span id="L-5374"><a href="#L-5374"><span class="linenos">5374</span></a><span class="sd"> expression: The expression to cast.</span>
</span><span id="L-5375"><a href="#L-5375"><span class="linenos">5375</span></a><span class="sd"> to: The datatype to cast to.</span>
</span><span id="L-5376"><a href="#L-5376"><span class="linenos">5376</span></a>
</span><span id="L-5377"><a href="#L-5377"><span class="linenos">5377</span></a><span class="sd"> Returns:</span>
</span><span id="L-5378"><a href="#L-5378"><span class="linenos">5378</span></a><span class="sd"> The new Cast instance.</span>
</span><span id="L-5379"><a href="#L-5379"><span class="linenos">5379</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5380"><a href="#L-5380"><span class="linenos">5380</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="L-5381"><a href="#L-5381"><span class="linenos">5381</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span><span id="L-5382"><a href="#L-5382"><span class="linenos">5382</span></a>
</span><span id="L-5383"><a href="#L-5383"><span class="linenos">5383</span></a>
</span><span id="L-5384"><a href="#L-5384"><span class="linenos">5384</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
</span><span id="L-5385"><a href="#L-5385"><span class="linenos">5385</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
</span><span id="L-5386"><a href="#L-5386"><span class="linenos">5386</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5387"><a href="#L-5387"><span class="linenos">5387</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5388"><a href="#L-5388"><span class="linenos">5388</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5389"><a href="#L-5389"><span class="linenos">5389</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5390"><a href="#L-5390"><span class="linenos">5390</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
</span><span id="L-5391"><a href="#L-5391"><span class="linenos">5391</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
</span><span id="L-5392"><a href="#L-5392"><span class="linenos">5392</span></a>
</span><span id="L-5393"><a href="#L-5393"><span class="linenos">5393</span></a><span class="sd"> Args:</span>
</span><span id="L-5394"><a href="#L-5394"><span class="linenos">5394</span></a><span class="sd"> table: Table name.</span>
</span><span id="L-5395"><a href="#L-5395"><span class="linenos">5395</span></a><span class="sd"> db: Database name.</span>
</span><span id="L-5396"><a href="#L-5396"><span class="linenos">5396</span></a><span class="sd"> catalog: Catalog name.</span>
</span><span id="L-5397"><a href="#L-5397"><span class="linenos">5397</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
</span><span id="L-5398"><a href="#L-5398"><span class="linenos">5398</span></a><span class="sd"> alias: Table&#39;s alias.</span>
</span><span id="L-5399"><a href="#L-5399"><span class="linenos">5399</span></a>
</span><span id="L-5400"><a href="#L-5400"><span class="linenos">5400</span></a><span class="sd"> Returns:</span>
</span><span id="L-5401"><a href="#L-5401"><span class="linenos">5401</span></a><span class="sd"> The new Table instance.</span>
</span><span id="L-5402"><a href="#L-5402"><span class="linenos">5402</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5403"><a href="#L-5403"><span class="linenos">5403</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
</span><span id="L-5404"><a href="#L-5404"><span class="linenos">5404</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="L-5405"><a href="#L-5405"><span class="linenos">5405</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="L-5406"><a href="#L-5406"><span class="linenos">5406</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="L-5407"><a href="#L-5407"><span class="linenos">5407</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5408"><a href="#L-5408"><span class="linenos">5408</span></a> <span class="p">)</span>
</span><span id="L-5409"><a href="#L-5409"><span class="linenos">5409</span></a>
</span><span id="L-5410"><a href="#L-5410"><span class="linenos">5410</span></a>
</span><span id="L-5411"><a href="#L-5411"><span class="linenos">5411</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
</span><span id="L-5412"><a href="#L-5412"><span class="linenos">5412</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="o">...</span><span class="p">]],</span>
</span><span id="L-5413"><a href="#L-5413"><span class="linenos">5413</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5414"><a href="#L-5414"><span class="linenos">5414</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="L-5415"><a href="#L-5415"><span class="linenos">5415</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
</span><span id="L-5416"><a href="#L-5416"><span class="linenos">5416</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
</span><span id="L-5417"><a href="#L-5417"><span class="linenos">5417</span></a>
</span><span id="L-5418"><a href="#L-5418"><span class="linenos">5418</span></a><span class="sd"> Example:</span>
</span><span id="L-5419"><a href="#L-5419"><span class="linenos">5419</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
</span><span id="L-5420"><a href="#L-5420"><span class="linenos">5420</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
</span><span id="L-5421"><a href="#L-5421"><span class="linenos">5421</span></a>
</span><span id="L-5422"><a href="#L-5422"><span class="linenos">5422</span></a><span class="sd"> Args:</span>
</span><span id="L-5423"><a href="#L-5423"><span class="linenos">5423</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
</span><span id="L-5424"><a href="#L-5424"><span class="linenos">5424</span></a><span class="sd"> alias: optional alias</span>
</span><span id="L-5425"><a href="#L-5425"><span class="linenos">5425</span></a><span class="sd"> columns: Optional list of ordered column names or ordered dictionary of column names to types.</span>
</span><span id="L-5426"><a href="#L-5426"><span class="linenos">5426</span></a><span class="sd"> If either are provided then an alias is also required.</span>
</span><span id="L-5427"><a href="#L-5427"><span class="linenos">5427</span></a>
</span><span id="L-5428"><a href="#L-5428"><span class="linenos">5428</span></a><span class="sd"> Returns:</span>
</span><span id="L-5429"><a href="#L-5429"><span class="linenos">5429</span></a><span class="sd"> Values: the Values expression object</span>
</span><span id="L-5430"><a href="#L-5430"><span class="linenos">5430</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5431"><a href="#L-5431"><span class="linenos">5431</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">alias</span><span class="p">:</span>
</span><span id="L-5432"><a href="#L-5432"><span class="linenos">5432</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Alias is required when providing columns&quot;</span><span class="p">)</span>
</span><span id="L-5433"><a href="#L-5433"><span class="linenos">5433</span></a>
</span><span id="L-5434"><a href="#L-5434"><span class="linenos">5434</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
</span><span id="L-5435"><a href="#L-5435"><span class="linenos">5435</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">tup</span><span class="p">)</span> <span class="k">for</span> <span class="n">tup</span> <span class="ow">in</span> <span class="n">values</span><span class="p">],</span>
</span><span id="L-5436"><a href="#L-5436"><span class="linenos">5436</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
</span><span id="L-5437"><a href="#L-5437"><span class="linenos">5437</span></a> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">),</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span>
</span><span id="L-5438"><a href="#L-5438"><span class="linenos">5438</span></a> <span class="k">if</span> <span class="n">columns</span>
</span><span id="L-5439"><a href="#L-5439"><span class="linenos">5439</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="L-5440"><a href="#L-5440"><span class="linenos">5440</span></a> <span class="p">),</span>
</span><span id="L-5441"><a href="#L-5441"><span class="linenos">5441</span></a> <span class="p">)</span>
</span><span id="L-5442"><a href="#L-5442"><span class="linenos">5442</span></a>
</span><span id="L-5443"><a href="#L-5443"><span class="linenos">5443</span></a>
</span><span id="L-5444"><a href="#L-5444"><span class="linenos">5444</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
</span><span id="L-5445"><a href="#L-5445"><span class="linenos">5445</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
</span><span id="L-5446"><a href="#L-5446"><span class="linenos">5446</span></a>
</span><span id="L-5447"><a href="#L-5447"><span class="linenos">5447</span></a><span class="sd"> Example:</span>
</span><span id="L-5448"><a href="#L-5448"><span class="linenos">5448</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
</span><span id="L-5449"><a href="#L-5449"><span class="linenos">5449</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
</span><span id="L-5450"><a href="#L-5450"><span class="linenos">5450</span></a>
</span><span id="L-5451"><a href="#L-5451"><span class="linenos">5451</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
</span><span id="L-5452"><a href="#L-5452"><span class="linenos">5452</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
</span><span id="L-5453"><a href="#L-5453"><span class="linenos">5453</span></a>
</span><span id="L-5454"><a href="#L-5454"><span class="linenos">5454</span></a><span class="sd"> Args:</span>
</span><span id="L-5455"><a href="#L-5455"><span class="linenos">5455</span></a><span class="sd"> name: The name of the var or an expression who&#39;s name will become the var.</span>
</span><span id="L-5456"><a href="#L-5456"><span class="linenos">5456</span></a>
</span><span id="L-5457"><a href="#L-5457"><span class="linenos">5457</span></a><span class="sd"> Returns:</span>
</span><span id="L-5458"><a href="#L-5458"><span class="linenos">5458</span></a><span class="sd"> The new variable node.</span>
</span><span id="L-5459"><a href="#L-5459"><span class="linenos">5459</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5460"><a href="#L-5460"><span class="linenos">5460</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">name</span><span class="p">:</span>
</span><span id="L-5461"><a href="#L-5461"><span class="linenos">5461</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot convert empty name into var.&quot;</span><span class="p">)</span>
</span><span id="L-5462"><a href="#L-5462"><span class="linenos">5462</span></a>
</span><span id="L-5463"><a href="#L-5463"><span class="linenos">5463</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="L-5464"><a href="#L-5464"><span class="linenos">5464</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">name</span>
</span><span id="L-5465"><a href="#L-5465"><span class="linenos">5465</span></a> <span class="k">return</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
</span><span id="L-5466"><a href="#L-5466"><span class="linenos">5466</span></a>
</span><span id="L-5467"><a href="#L-5467"><span class="linenos">5467</span></a>
</span><span id="L-5468"><a href="#L-5468"><span class="linenos">5468</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
</span><span id="L-5469"><a href="#L-5469"><span class="linenos">5469</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
</span><span id="L-5470"><a href="#L-5470"><span class="linenos">5470</span></a>
</span><span id="L-5471"><a href="#L-5471"><span class="linenos">5471</span></a><span class="sd"> Args:</span>
</span><span id="L-5472"><a href="#L-5472"><span class="linenos">5472</span></a><span class="sd"> old_name: The old name of the table</span>
</span><span id="L-5473"><a href="#L-5473"><span class="linenos">5473</span></a><span class="sd"> new_name: The new name of the table</span>
</span><span id="L-5474"><a href="#L-5474"><span class="linenos">5474</span></a>
</span><span id="L-5475"><a href="#L-5475"><span class="linenos">5475</span></a><span class="sd"> Returns:</span>
</span><span id="L-5476"><a href="#L-5476"><span class="linenos">5476</span></a><span class="sd"> Alter table expression</span>
</span><span id="L-5477"><a href="#L-5477"><span class="linenos">5477</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5478"><a href="#L-5478"><span class="linenos">5478</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span>
</span><span id="L-5479"><a href="#L-5479"><span class="linenos">5479</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
</span><span id="L-5480"><a href="#L-5480"><span class="linenos">5480</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
</span><span id="L-5481"><a href="#L-5481"><span class="linenos">5481</span></a> <span class="n">this</span><span class="o">=</span><span class="n">old_table</span><span class="p">,</span>
</span><span id="L-5482"><a href="#L-5482"><span class="linenos">5482</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
</span><span id="L-5483"><a href="#L-5483"><span class="linenos">5483</span></a> <span class="n">RenameTable</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">new_table</span><span class="p">),</span>
</span><span id="L-5484"><a href="#L-5484"><span class="linenos">5484</span></a> <span class="p">],</span>
</span><span id="L-5485"><a href="#L-5485"><span class="linenos">5485</span></a> <span class="p">)</span>
</span><span id="L-5486"><a href="#L-5486"><span class="linenos">5486</span></a>
</span><span id="L-5487"><a href="#L-5487"><span class="linenos">5487</span></a>
</span><span id="L-5488"><a href="#L-5488"><span class="linenos">5488</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="L-5489"><a href="#L-5489"><span class="linenos">5489</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Convert a python value into an expression object.</span>
</span><span id="L-5490"><a href="#L-5490"><span class="linenos">5490</span></a>
</span><span id="L-5491"><a href="#L-5491"><span class="linenos">5491</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
</span><span id="L-5492"><a href="#L-5492"><span class="linenos">5492</span></a>
</span><span id="L-5493"><a href="#L-5493"><span class="linenos">5493</span></a><span class="sd"> Args:</span>
</span><span id="L-5494"><a href="#L-5494"><span class="linenos">5494</span></a><span class="sd"> value: A python object.</span>
</span><span id="L-5495"><a href="#L-5495"><span class="linenos">5495</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
</span><span id="L-5496"><a href="#L-5496"><span class="linenos">5496</span></a>
</span><span id="L-5497"><a href="#L-5497"><span class="linenos">5497</span></a><span class="sd"> Returns:</span>
</span><span id="L-5498"><a href="#L-5498"><span class="linenos">5498</span></a><span class="sd"> Expression: the equivalent expression object.</span>
</span><span id="L-5499"><a href="#L-5499"><span class="linenos">5499</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5500"><a href="#L-5500"><span class="linenos">5500</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="L-5501"><a href="#L-5501"><span class="linenos">5501</span></a> <span class="k">return</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="L-5502"><a href="#L-5502"><span class="linenos">5502</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="L-5503"><a href="#L-5503"><span class="linenos">5503</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
</span><span id="L-5504"><a href="#L-5504"><span class="linenos">5504</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span>
</span><span id="L-5505"><a href="#L-5505"><span class="linenos">5505</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
</span><span id="L-5506"><a href="#L-5506"><span class="linenos">5506</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
</span><span id="L-5507"><a href="#L-5507"><span class="linenos">5507</span></a> <span class="k">return</span> <span class="n">NULL</span>
</span><span id="L-5508"><a href="#L-5508"><span class="linenos">5508</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">numbers</span><span class="o">.</span><span class="n">Number</span><span class="p">):</span>
</span><span id="L-5509"><a href="#L-5509"><span class="linenos">5509</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
</span><span id="L-5510"><a href="#L-5510"><span class="linenos">5510</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">):</span>
</span><span id="L-5511"><a href="#L-5511"><span class="linenos">5511</span></a> <span class="n">datetime_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
</span><span id="L-5512"><a href="#L-5512"><span class="linenos">5512</span></a> <span class="p">(</span><span class="n">value</span> <span class="k">if</span> <span class="n">value</span><span class="o">.</span><span class="n">tzinfo</span> <span class="k">else</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">tzinfo</span><span class="o">=</span><span class="n">datetime</span><span class="o">.</span><span class="n">timezone</span><span class="o">.</span><span class="n">utc</span><span class="p">))</span><span class="o">.</span><span class="n">isoformat</span><span class="p">()</span>
</span><span id="L-5513"><a href="#L-5513"><span class="linenos">5513</span></a> <span class="p">)</span>
</span><span id="L-5514"><a href="#L-5514"><span class="linenos">5514</span></a> <span class="k">return</span> <span class="n">TimeStrToTime</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">datetime_literal</span><span class="p">)</span>
</span><span id="L-5515"><a href="#L-5515"><span class="linenos">5515</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="p">):</span>
</span><span id="L-5516"><a href="#L-5516"><span class="linenos">5516</span></a> <span class="n">date_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span class="s2">&quot;</span><span class="p">))</span>
</span><span id="L-5517"><a href="#L-5517"><span class="linenos">5517</span></a> <span class="k">return</span> <span class="n">DateStrToDate</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">date_literal</span><span class="p">)</span>
</span><span id="L-5518"><a href="#L-5518"><span class="linenos">5518</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">):</span>
</span><span id="L-5519"><a href="#L-5519"><span class="linenos">5519</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
</span><span id="L-5520"><a href="#L-5520"><span class="linenos">5520</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
</span><span id="L-5521"><a href="#L-5521"><span class="linenos">5521</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
</span><span id="L-5522"><a href="#L-5522"><span class="linenos">5522</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
</span><span id="L-5523"><a href="#L-5523"><span class="linenos">5523</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
</span><span id="L-5524"><a href="#L-5524"><span class="linenos">5524</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span>
</span><span id="L-5525"><a href="#L-5525"><span class="linenos">5525</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span>
</span><span id="L-5526"><a href="#L-5526"><span class="linenos">5526</span></a> <span class="p">)</span>
</span><span id="L-5527"><a href="#L-5527"><span class="linenos">5527</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot convert </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="L-5528"><a href="#L-5528"><span class="linenos">5528</span></a>
</span><span id="L-5529"><a href="#L-5529"><span class="linenos">5529</span></a>
</span><span id="L-5530"><a href="#L-5530"><span class="linenos">5530</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="L-5531"><a href="#L-5531"><span class="linenos">5531</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5532"><a href="#L-5532"><span class="linenos">5532</span></a><span class="sd"> Replace children of an expression with the result of a lambda fun(child) -&gt; exp.</span>
</span><span id="L-5533"><a href="#L-5533"><span class="linenos">5533</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5534"><a href="#L-5534"><span class="linenos">5534</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="L-5535"><a href="#L-5535"><span class="linenos">5535</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span>
</span><span id="L-5536"><a href="#L-5536"><span class="linenos">5536</span></a>
</span><span id="L-5537"><a href="#L-5537"><span class="linenos">5537</span></a> <span class="n">child_nodes</span> <span class="o">=</span> <span class="n">v</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="p">[</span><span class="n">v</span><span class="p">]</span>
</span><span id="L-5538"><a href="#L-5538"><span class="linenos">5538</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="L-5539"><a href="#L-5539"><span class="linenos">5539</span></a>
</span><span id="L-5540"><a href="#L-5540"><span class="linenos">5540</span></a> <span class="k">for</span> <span class="n">cn</span> <span class="ow">in</span> <span class="n">child_nodes</span><span class="p">:</span>
</span><span id="L-5541"><a href="#L-5541"><span class="linenos">5541</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="L-5542"><a href="#L-5542"><span class="linenos">5542</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)):</span>
</span><span id="L-5543"><a href="#L-5543"><span class="linenos">5543</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_node</span><span class="p">)</span>
</span><span id="L-5544"><a href="#L-5544"><span class="linenos">5544</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span>
</span><span id="L-5545"><a href="#L-5545"><span class="linenos">5545</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span>
</span><span id="L-5546"><a href="#L-5546"><span class="linenos">5546</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-5547"><a href="#L-5547"><span class="linenos">5547</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cn</span><span class="p">)</span>
</span><span id="L-5548"><a href="#L-5548"><span class="linenos">5548</span></a>
</span><span id="L-5549"><a href="#L-5549"><span class="linenos">5549</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
</span><span id="L-5550"><a href="#L-5550"><span class="linenos">5550</span></a>
</span><span id="L-5551"><a href="#L-5551"><span class="linenos">5551</span></a>
</span><span id="L-5552"><a href="#L-5552"><span class="linenos">5552</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="L-5553"><a href="#L-5553"><span class="linenos">5553</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5554"><a href="#L-5554"><span class="linenos">5554</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
</span><span id="L-5555"><a href="#L-5555"><span class="linenos">5555</span></a>
</span><span id="L-5556"><a href="#L-5556"><span class="linenos">5556</span></a><span class="sd"> Example:</span>
</span><span id="L-5557"><a href="#L-5557"><span class="linenos">5557</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="L-5558"><a href="#L-5558"><span class="linenos">5558</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
</span><span id="L-5559"><a href="#L-5559"><span class="linenos">5559</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</span>
</span><span id="L-5560"><a href="#L-5560"><span class="linenos">5560</span></a>
</span><span id="L-5561"><a href="#L-5561"><span class="linenos">5561</span></a><span class="sd"> Args:</span>
</span><span id="L-5562"><a href="#L-5562"><span class="linenos">5562</span></a><span class="sd"> expression: expression to find table names.</span>
</span><span id="L-5563"><a href="#L-5563"><span class="linenos">5563</span></a>
</span><span id="L-5564"><a href="#L-5564"><span class="linenos">5564</span></a><span class="sd"> Returns:</span>
</span><span id="L-5565"><a href="#L-5565"><span class="linenos">5565</span></a><span class="sd"> A list of unique names.</span>
</span><span id="L-5566"><a href="#L-5566"><span class="linenos">5566</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5567"><a href="#L-5567"><span class="linenos">5567</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span>
</span><span id="L-5568"><a href="#L-5568"><span class="linenos">5568</span></a>
</span><span id="L-5569"><a href="#L-5569"><span class="linenos">5569</span></a>
</span><span id="L-5570"><a href="#L-5570"><span class="linenos">5570</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="L-5571"><a href="#L-5571"><span class="linenos">5571</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get the full name of a table as a string.</span>
</span><span id="L-5572"><a href="#L-5572"><span class="linenos">5572</span></a>
</span><span id="L-5573"><a href="#L-5573"><span class="linenos">5573</span></a><span class="sd"> Args:</span>
</span><span id="L-5574"><a href="#L-5574"><span class="linenos">5574</span></a><span class="sd"> table: table expression node or string.</span>
</span><span id="L-5575"><a href="#L-5575"><span class="linenos">5575</span></a>
</span><span id="L-5576"><a href="#L-5576"><span class="linenos">5576</span></a><span class="sd"> Examples:</span>
</span><span id="L-5577"><a href="#L-5577"><span class="linenos">5577</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
</span><span id="L-5578"><a href="#L-5578"><span class="linenos">5578</span></a><span class="sd"> &gt;&gt;&gt; table_name(parse_one(&quot;select * from a.b.c&quot;).find(exp.Table))</span>
</span><span id="L-5579"><a href="#L-5579"><span class="linenos">5579</span></a><span class="sd"> &#39;a.b.c&#39;</span>
</span><span id="L-5580"><a href="#L-5580"><span class="linenos">5580</span></a>
</span><span id="L-5581"><a href="#L-5581"><span class="linenos">5581</span></a><span class="sd"> Returns:</span>
</span><span id="L-5582"><a href="#L-5582"><span class="linenos">5582</span></a><span class="sd"> The table name.</span>
</span><span id="L-5583"><a href="#L-5583"><span class="linenos">5583</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5584"><a href="#L-5584"><span class="linenos">5584</span></a>
</span><span id="L-5585"><a href="#L-5585"><span class="linenos">5585</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
</span><span id="L-5586"><a href="#L-5586"><span class="linenos">5586</span></a>
</span><span id="L-5587"><a href="#L-5587"><span class="linenos">5587</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span>
</span><span id="L-5588"><a href="#L-5588"><span class="linenos">5588</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot parse </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="L-5589"><a href="#L-5589"><span class="linenos">5589</span></a>
</span><span id="L-5590"><a href="#L-5590"><span class="linenos">5590</span></a> <span class="k">return</span> <span class="s2">&quot;.&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">part</span> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">part</span><span class="p">)</span>
</span><span id="L-5591"><a href="#L-5591"><span class="linenos">5591</span></a>
</span><span id="L-5592"><a href="#L-5592"><span class="linenos">5592</span></a>
</span><span id="L-5593"><a href="#L-5593"><span class="linenos">5593</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="L-5594"><a href="#L-5594"><span class="linenos">5594</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace all tables in expression according to the mapping.</span>
</span><span id="L-5595"><a href="#L-5595"><span class="linenos">5595</span></a>
</span><span id="L-5596"><a href="#L-5596"><span class="linenos">5596</span></a><span class="sd"> Args:</span>
</span><span id="L-5597"><a href="#L-5597"><span class="linenos">5597</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
</span><span id="L-5598"><a href="#L-5598"><span class="linenos">5598</span></a><span class="sd"> mapping: mapping of table names.</span>
</span><span id="L-5599"><a href="#L-5599"><span class="linenos">5599</span></a>
</span><span id="L-5600"><a href="#L-5600"><span class="linenos">5600</span></a><span class="sd"> Examples:</span>
</span><span id="L-5601"><a href="#L-5601"><span class="linenos">5601</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
</span><span id="L-5602"><a href="#L-5602"><span class="linenos">5602</span></a><span class="sd"> &gt;&gt;&gt; replace_tables(parse_one(&quot;select * from a.b&quot;), {&quot;a.b&quot;: &quot;c&quot;}).sql()</span>
</span><span id="L-5603"><a href="#L-5603"><span class="linenos">5603</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
</span><span id="L-5604"><a href="#L-5604"><span class="linenos">5604</span></a>
</span><span id="L-5605"><a href="#L-5605"><span class="linenos">5605</span></a><span class="sd"> Returns:</span>
</span><span id="L-5606"><a href="#L-5606"><span class="linenos">5606</span></a><span class="sd"> The mapped expression.</span>
</span><span id="L-5607"><a href="#L-5607"><span class="linenos">5607</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5608"><a href="#L-5608"><span class="linenos">5608</span></a>
</span><span id="L-5609"><a href="#L-5609"><span class="linenos">5609</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="L-5610"><a href="#L-5610"><span class="linenos">5610</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
</span><span id="L-5611"><a href="#L-5611"><span class="linenos">5611</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
</span><span id="L-5612"><a href="#L-5612"><span class="linenos">5612</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
</span><span id="L-5613"><a href="#L-5613"><span class="linenos">5613</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
</span><span id="L-5614"><a href="#L-5614"><span class="linenos">5614</span></a> <span class="n">new_name</span><span class="p">,</span>
</span><span id="L-5615"><a href="#L-5615"><span class="linenos">5615</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
</span><span id="L-5616"><a href="#L-5616"><span class="linenos">5616</span></a> <span class="p">)</span>
</span><span id="L-5617"><a href="#L-5617"><span class="linenos">5617</span></a> <span class="k">return</span> <span class="n">node</span>
</span><span id="L-5618"><a href="#L-5618"><span class="linenos">5618</span></a>
</span><span id="L-5619"><a href="#L-5619"><span class="linenos">5619</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">)</span>
</span><span id="L-5620"><a href="#L-5620"><span class="linenos">5620</span></a>
</span><span id="L-5621"><a href="#L-5621"><span class="linenos">5621</span></a>
</span><span id="L-5622"><a href="#L-5622"><span class="linenos">5622</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="L-5623"><a href="#L-5623"><span class="linenos">5623</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
</span><span id="L-5624"><a href="#L-5624"><span class="linenos">5624</span></a>
</span><span id="L-5625"><a href="#L-5625"><span class="linenos">5625</span></a><span class="sd"> Args:</span>
</span><span id="L-5626"><a href="#L-5626"><span class="linenos">5626</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
</span><span id="L-5627"><a href="#L-5627"><span class="linenos">5627</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
</span><span id="L-5628"><a href="#L-5628"><span class="linenos">5628</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
</span><span id="L-5629"><a href="#L-5629"><span class="linenos">5629</span></a>
</span><span id="L-5630"><a href="#L-5630"><span class="linenos">5630</span></a><span class="sd"> Examples:</span>
</span><span id="L-5631"><a href="#L-5631"><span class="linenos">5631</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
</span><span id="L-5632"><a href="#L-5632"><span class="linenos">5632</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
</span><span id="L-5633"><a href="#L-5633"><span class="linenos">5633</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
</span><span id="L-5634"><a href="#L-5634"><span class="linenos">5634</span></a><span class="sd"> ... exp.to_identifier(&quot;str_col&quot;), &quot;b&quot;, tbl=exp.to_identifier(&quot;foo&quot;)</span>
</span><span id="L-5635"><a href="#L-5635"><span class="linenos">5635</span></a><span class="sd"> ... ).sql()</span>
</span><span id="L-5636"><a href="#L-5636"><span class="linenos">5636</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
</span><span id="L-5637"><a href="#L-5637"><span class="linenos">5637</span></a>
</span><span id="L-5638"><a href="#L-5638"><span class="linenos">5638</span></a><span class="sd"> Returns:</span>
</span><span id="L-5639"><a href="#L-5639"><span class="linenos">5639</span></a><span class="sd"> The mapped expression.</span>
</span><span id="L-5640"><a href="#L-5640"><span class="linenos">5640</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5641"><a href="#L-5641"><span class="linenos">5641</span></a>
</span><span id="L-5642"><a href="#L-5642"><span class="linenos">5642</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="L-5643"><a href="#L-5643"><span class="linenos">5643</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Placeholder</span><span class="p">):</span>
</span><span id="L-5644"><a href="#L-5644"><span class="linenos">5644</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
</span><span id="L-5645"><a href="#L-5645"><span class="linenos">5645</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</span><span id="L-5646"><a href="#L-5646"><span class="linenos">5646</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
</span><span id="L-5647"><a href="#L-5647"><span class="linenos">5647</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
</span><span id="L-5648"><a href="#L-5648"><span class="linenos">5648</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-5649"><a href="#L-5649"><span class="linenos">5649</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="L-5650"><a href="#L-5650"><span class="linenos">5650</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span>
</span><span id="L-5651"><a href="#L-5651"><span class="linenos">5651</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
</span><span id="L-5652"><a href="#L-5652"><span class="linenos">5652</span></a> <span class="k">pass</span>
</span><span id="L-5653"><a href="#L-5653"><span class="linenos">5653</span></a> <span class="k">return</span> <span class="n">node</span>
</span><span id="L-5654"><a href="#L-5654"><span class="linenos">5654</span></a>
</span><span id="L-5655"><a href="#L-5655"><span class="linenos">5655</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_placeholders</span><span class="p">,</span> <span class="nb">iter</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="L-5656"><a href="#L-5656"><span class="linenos">5656</span></a>
</span><span id="L-5657"><a href="#L-5657"><span class="linenos">5657</span></a>
</span><span id="L-5658"><a href="#L-5658"><span class="linenos">5658</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
</span><span id="L-5659"><a href="#L-5659"><span class="linenos">5659</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="L-5660"><a href="#L-5660"><span class="linenos">5660</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="L-5661"><a href="#L-5661"><span class="linenos">5661</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Transforms an expression by expanding all referenced sources into subqueries.</span>
</span><span id="L-5662"><a href="#L-5662"><span class="linenos">5662</span></a>
</span><span id="L-5663"><a href="#L-5663"><span class="linenos">5663</span></a><span class="sd"> Examples:</span>
</span><span id="L-5664"><a href="#L-5664"><span class="linenos">5664</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
</span><span id="L-5665"><a href="#L-5665"><span class="linenos">5665</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;)}).sql()</span>
</span><span id="L-5666"><a href="#L-5666"><span class="linenos">5666</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
</span><span id="L-5667"><a href="#L-5667"><span class="linenos">5667</span></a>
</span><span id="L-5668"><a href="#L-5668"><span class="linenos">5668</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;), &quot;y&quot;: parse_one(&quot;select * from z&quot;)}).sql()</span>
</span><span id="L-5669"><a href="#L-5669"><span class="linenos">5669</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */&#39;</span>
</span><span id="L-5670"><a href="#L-5670"><span class="linenos">5670</span></a>
</span><span id="L-5671"><a href="#L-5671"><span class="linenos">5671</span></a><span class="sd"> Args:</span>
</span><span id="L-5672"><a href="#L-5672"><span class="linenos">5672</span></a><span class="sd"> expression: The expression to expand.</span>
</span><span id="L-5673"><a href="#L-5673"><span class="linenos">5673</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
</span><span id="L-5674"><a href="#L-5674"><span class="linenos">5674</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
</span><span id="L-5675"><a href="#L-5675"><span class="linenos">5675</span></a>
</span><span id="L-5676"><a href="#L-5676"><span class="linenos">5676</span></a><span class="sd"> Returns:</span>
</span><span id="L-5677"><a href="#L-5677"><span class="linenos">5677</span></a><span class="sd"> The transformed expression.</span>
</span><span id="L-5678"><a href="#L-5678"><span class="linenos">5678</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5679"><a href="#L-5679"><span class="linenos">5679</span></a>
</span><span id="L-5680"><a href="#L-5680"><span class="linenos">5680</span></a> <span class="k">def</span> <span class="nf">_expand</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="L-5681"><a href="#L-5681"><span class="linenos">5681</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
</span><span id="L-5682"><a href="#L-5682"><span class="linenos">5682</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
</span><span id="L-5683"><a href="#L-5683"><span class="linenos">5683</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
</span><span id="L-5684"><a href="#L-5684"><span class="linenos">5684</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
</span><span id="L-5685"><a href="#L-5685"><span class="linenos">5685</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="n">name</span><span class="p">)</span>
</span><span id="L-5686"><a href="#L-5686"><span class="linenos">5686</span></a> <span class="n">subquery</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">&quot;source: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">]</span>
</span><span id="L-5687"><a href="#L-5687"><span class="linenos">5687</span></a> <span class="k">return</span> <span class="n">subquery</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</span><span id="L-5688"><a href="#L-5688"><span class="linenos">5688</span></a> <span class="k">return</span> <span class="n">node</span>
</span><span id="L-5689"><a href="#L-5689"><span class="linenos">5689</span></a>
</span><span id="L-5690"><a href="#L-5690"><span class="linenos">5690</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
</span><span id="L-5691"><a href="#L-5691"><span class="linenos">5691</span></a>
</span><span id="L-5692"><a href="#L-5692"><span class="linenos">5692</span></a>
</span><span id="L-5693"><a href="#L-5693"><span class="linenos">5693</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
</span><span id="L-5694"><a href="#L-5694"><span class="linenos">5694</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5695"><a href="#L-5695"><span class="linenos">5695</span></a><span class="sd"> Returns a Func expression.</span>
</span><span id="L-5696"><a href="#L-5696"><span class="linenos">5696</span></a>
</span><span id="L-5697"><a href="#L-5697"><span class="linenos">5697</span></a><span class="sd"> Examples:</span>
</span><span id="L-5698"><a href="#L-5698"><span class="linenos">5698</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
</span><span id="L-5699"><a href="#L-5699"><span class="linenos">5699</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
</span><span id="L-5700"><a href="#L-5700"><span class="linenos">5700</span></a>
</span><span id="L-5701"><a href="#L-5701"><span class="linenos">5701</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;cast&quot;, this=5, to=DataType.build(&quot;DOUBLE&quot;)).sql()</span>
</span><span id="L-5702"><a href="#L-5702"><span class="linenos">5702</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
</span><span id="L-5703"><a href="#L-5703"><span class="linenos">5703</span></a>
</span><span id="L-5704"><a href="#L-5704"><span class="linenos">5704</span></a><span class="sd"> Args:</span>
</span><span id="L-5705"><a href="#L-5705"><span class="linenos">5705</span></a><span class="sd"> name: the name of the function to build.</span>
</span><span id="L-5706"><a href="#L-5706"><span class="linenos">5706</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
</span><span id="L-5707"><a href="#L-5707"><span class="linenos">5707</span></a><span class="sd"> dialect: the source dialect.</span>
</span><span id="L-5708"><a href="#L-5708"><span class="linenos">5708</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
</span><span id="L-5709"><a href="#L-5709"><span class="linenos">5709</span></a>
</span><span id="L-5710"><a href="#L-5710"><span class="linenos">5710</span></a><span class="sd"> Note:</span>
</span><span id="L-5711"><a href="#L-5711"><span class="linenos">5711</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
</span><span id="L-5712"><a href="#L-5712"><span class="linenos">5712</span></a>
</span><span id="L-5713"><a href="#L-5713"><span class="linenos">5713</span></a><span class="sd"> Returns:</span>
</span><span id="L-5714"><a href="#L-5714"><span class="linenos">5714</span></a><span class="sd"> An instance of the function of interest, or an anonymous function, if `name` doesn&#39;t</span>
</span><span id="L-5715"><a href="#L-5715"><span class="linenos">5715</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
</span><span id="L-5716"><a href="#L-5716"><span class="linenos">5716</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5717"><a href="#L-5717"><span class="linenos">5717</span></a> <span class="k">if</span> <span class="n">args</span> <span class="ow">and</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="L-5718"><a href="#L-5718"><span class="linenos">5718</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Can&#39;t use both args and kwargs to instantiate a function.&quot;</span><span class="p">)</span>
</span><span id="L-5719"><a href="#L-5719"><span class="linenos">5719</span></a>
</span><span id="L-5720"><a href="#L-5720"><span class="linenos">5720</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</span>
</span><span id="L-5721"><a href="#L-5721"><span class="linenos">5721</span></a>
</span><span id="L-5722"><a href="#L-5722"><span class="linenos">5722</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
</span><span id="L-5723"><a href="#L-5723"><span class="linenos">5723</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
</span><span id="L-5724"><a href="#L-5724"><span class="linenos">5724</span></a>
</span><span id="L-5725"><a href="#L-5725"><span class="linenos">5725</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
</span><span id="L-5726"><a href="#L-5726"><span class="linenos">5726</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
</span><span id="L-5727"><a href="#L-5727"><span class="linenos">5727</span></a>
</span><span id="L-5728"><a href="#L-5728"><span class="linenos">5728</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
</span><span id="L-5729"><a href="#L-5729"><span class="linenos">5729</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="L-5730"><a href="#L-5730"><span class="linenos">5730</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="L-5731"><a href="#L-5731"><span class="linenos">5731</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span> <span class="ow">or</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="n">converted</span><span class="p">}</span>
</span><span id="L-5732"><a href="#L-5732"><span class="linenos">5732</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">Anonymous</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="L-5733"><a href="#L-5733"><span class="linenos">5733</span></a>
</span><span id="L-5734"><a href="#L-5734"><span class="linenos">5734</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">function</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">converted</span><span class="p">):</span>
</span><span id="L-5735"><a href="#L-5735"><span class="linenos">5735</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span>
</span><span id="L-5736"><a href="#L-5736"><span class="linenos">5736</span></a>
</span><span id="L-5737"><a href="#L-5737"><span class="linenos">5737</span></a> <span class="k">return</span> <span class="n">function</span>
</span><span id="L-5738"><a href="#L-5738"><span class="linenos">5738</span></a>
</span><span id="L-5739"><a href="#L-5739"><span class="linenos">5739</span></a>
</span><span id="L-5740"><a href="#L-5740"><span class="linenos">5740</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
</span><span id="L-5741"><a href="#L-5741"><span class="linenos">5741</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5742"><a href="#L-5742"><span class="linenos">5742</span></a><span class="sd"> Returns a true Boolean expression.</span>
</span><span id="L-5743"><a href="#L-5743"><span class="linenos">5743</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5744"><a href="#L-5744"><span class="linenos">5744</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-5745"><a href="#L-5745"><span class="linenos">5745</span></a>
</span><span id="L-5746"><a href="#L-5746"><span class="linenos">5746</span></a>
</span><span id="L-5747"><a href="#L-5747"><span class="linenos">5747</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
</span><span id="L-5748"><a href="#L-5748"><span class="linenos">5748</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5749"><a href="#L-5749"><span class="linenos">5749</span></a><span class="sd"> Returns a false Boolean expression.</span>
</span><span id="L-5750"><a href="#L-5750"><span class="linenos">5750</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5751"><a href="#L-5751"><span class="linenos">5751</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</span><span id="L-5752"><a href="#L-5752"><span class="linenos">5752</span></a>
</span><span id="L-5753"><a href="#L-5753"><span class="linenos">5753</span></a>
</span><span id="L-5754"><a href="#L-5754"><span class="linenos">5754</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
</span><span id="L-5755"><a href="#L-5755"><span class="linenos">5755</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="L-5756"><a href="#L-5756"><span class="linenos">5756</span></a><span class="sd"> Returns a Null expression.</span>
</span><span id="L-5757"><a href="#L-5757"><span class="linenos">5757</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="L-5758"><a href="#L-5758"><span class="linenos">5758</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
</span><span id="L-5759"><a href="#L-5759"><span class="linenos">5759</span></a>
</span><span id="L-5760"><a href="#L-5760"><span class="linenos">5760</span></a>
</span><span id="L-5761"><a href="#L-5761"><span class="linenos">5761</span></a><span class="c1"># TODO: deprecate this</span>
</span><span id="L-5762"><a href="#L-5762"><span class="linenos">5762</span></a><span class="n">TRUE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="L-5763"><a href="#L-5763"><span class="linenos">5763</span></a><span class="n">FALSE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</span><span id="L-5764"><a href="#L-5764"><span class="linenos">5764</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>
</section>
<section id="Expression">
<input id="Expression-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Expression</span>:
<label class="view-source-button" for="Expression-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression-55"><a href="#Expression-55"><span class="linenos"> 55</span></a><span class="k">class</span> <span class="nc">Expression</span><span class="p">(</span><span class="n">metaclass</span><span class="o">=</span><span class="n">_Expression</span><span class="p">):</span>
</span><span id="Expression-56"><a href="#Expression-56"><span class="linenos"> 56</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-57"><a href="#Expression-57"><span class="linenos"> 57</span></a><span class="sd"> The base class for all expressions in a syntax tree. Each Expression encapsulates any necessary</span>
</span><span id="Expression-58"><a href="#Expression-58"><span class="linenos"> 58</span></a><span class="sd"> context, such as its child expressions, their names (arg keys), and whether a given child expression</span>
</span><span id="Expression-59"><a href="#Expression-59"><span class="linenos"> 59</span></a><span class="sd"> is optional or not.</span>
</span><span id="Expression-60"><a href="#Expression-60"><span class="linenos"> 60</span></a>
</span><span id="Expression-61"><a href="#Expression-61"><span class="linenos"> 61</span></a><span class="sd"> Attributes:</span>
</span><span id="Expression-62"><a href="#Expression-62"><span class="linenos"> 62</span></a><span class="sd"> key: a unique key for each class in the Expression hierarchy. This is useful for hashing</span>
</span><span id="Expression-63"><a href="#Expression-63"><span class="linenos"> 63</span></a><span class="sd"> and representing expressions as strings.</span>
</span><span id="Expression-64"><a href="#Expression-64"><span class="linenos"> 64</span></a><span class="sd"> arg_types: determines what arguments (child nodes) are supported by an expression. It</span>
</span><span id="Expression-65"><a href="#Expression-65"><span class="linenos"> 65</span></a><span class="sd"> maps arg keys to booleans that indicate whether the corresponding args are optional.</span>
</span><span id="Expression-66"><a href="#Expression-66"><span class="linenos"> 66</span></a><span class="sd"> parent: a reference to the parent expression (or None, in case of root expressions).</span>
</span><span id="Expression-67"><a href="#Expression-67"><span class="linenos"> 67</span></a><span class="sd"> arg_key: the arg key an expression is associated with, i.e. the name its parent expression</span>
</span><span id="Expression-68"><a href="#Expression-68"><span class="linenos"> 68</span></a><span class="sd"> uses to refer to it.</span>
</span><span id="Expression-69"><a href="#Expression-69"><span class="linenos"> 69</span></a><span class="sd"> comments: a list of comments that are associated with a given expression. This is used in</span>
</span><span id="Expression-70"><a href="#Expression-70"><span class="linenos"> 70</span></a><span class="sd"> order to preserve comments when transpiling SQL code.</span>
</span><span id="Expression-71"><a href="#Expression-71"><span class="linenos"> 71</span></a><span class="sd"> _type: the `sqlglot.expressions.DataType` type of an expression. This is inferred by the</span>
</span><span id="Expression-72"><a href="#Expression-72"><span class="linenos"> 72</span></a><span class="sd"> optimizer, in order to enable some transformations that require type information.</span>
</span><span id="Expression-73"><a href="#Expression-73"><span class="linenos"> 73</span></a>
</span><span id="Expression-74"><a href="#Expression-74"><span class="linenos"> 74</span></a><span class="sd"> Example:</span>
</span><span id="Expression-75"><a href="#Expression-75"><span class="linenos"> 75</span></a><span class="sd"> &gt;&gt;&gt; class Foo(Expression):</span>
</span><span id="Expression-76"><a href="#Expression-76"><span class="linenos"> 76</span></a><span class="sd"> ... arg_types = {&quot;this&quot;: True, &quot;expression&quot;: False}</span>
</span><span id="Expression-77"><a href="#Expression-77"><span class="linenos"> 77</span></a>
</span><span id="Expression-78"><a href="#Expression-78"><span class="linenos"> 78</span></a><span class="sd"> The above definition informs us that Foo is an Expression that requires an argument called</span>
</span><span id="Expression-79"><a href="#Expression-79"><span class="linenos"> 79</span></a><span class="sd"> &quot;this&quot; and may also optionally receive an argument called &quot;expression&quot;.</span>
</span><span id="Expression-80"><a href="#Expression-80"><span class="linenos"> 80</span></a>
</span><span id="Expression-81"><a href="#Expression-81"><span class="linenos"> 81</span></a><span class="sd"> Args:</span>
</span><span id="Expression-82"><a href="#Expression-82"><span class="linenos"> 82</span></a><span class="sd"> args: a mapping used for retrieving the arguments of an expression, given their arg keys.</span>
</span><span id="Expression-83"><a href="#Expression-83"><span class="linenos"> 83</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-84"><a href="#Expression-84"><span class="linenos"> 84</span></a>
</span><span id="Expression-85"><a href="#Expression-85"><span class="linenos"> 85</span></a> <span class="n">key</span> <span class="o">=</span> <span class="s2">&quot;expression&quot;</span>
</span><span id="Expression-86"><a href="#Expression-86"><span class="linenos"> 86</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="Expression-87"><a href="#Expression-87"><span class="linenos"> 87</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;args&quot;</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">,</span> <span class="s2">&quot;arg_key&quot;</span><span class="p">,</span> <span class="s2">&quot;comments&quot;</span><span class="p">,</span> <span class="s2">&quot;_type&quot;</span><span class="p">,</span> <span class="s2">&quot;_meta&quot;</span><span class="p">,</span> <span class="s2">&quot;_hash&quot;</span><span class="p">)</span>
</span><span id="Expression-88"><a href="#Expression-88"><span class="linenos"> 88</span></a>
</span><span id="Expression-89"><a href="#Expression-89"><span class="linenos"> 89</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">):</span>
</span><span id="Expression-90"><a href="#Expression-90"><span class="linenos"> 90</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">args</span>
</span><span id="Expression-91"><a href="#Expression-91"><span class="linenos"> 91</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression-92"><a href="#Expression-92"><span class="linenos"> 92</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression-93"><a href="#Expression-93"><span class="linenos"> 93</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression-94"><a href="#Expression-94"><span class="linenos"> 94</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression-95"><a href="#Expression-95"><span class="linenos"> 95</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression-96"><a href="#Expression-96"><span class="linenos"> 96</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression-97"><a href="#Expression-97"><span class="linenos"> 97</span></a>
</span><span id="Expression-98"><a href="#Expression-98"><span class="linenos"> 98</span></a> <span class="k">for</span> <span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="Expression-99"><a href="#Expression-99"><span class="linenos"> 99</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span><span id="Expression-100"><a href="#Expression-100"><span class="linenos">100</span></a>
</span><span id="Expression-101"><a href="#Expression-101"><span class="linenos">101</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="Expression-102"><a href="#Expression-102"><span class="linenos">102</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">type</span><span class="p">(</span><span class="n">other</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">hash</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">==</span> <span class="nb">hash</span><span class="p">(</span><span class="n">other</span><span class="p">)</span>
</span><span id="Expression-103"><a href="#Expression-103"><span class="linenos">103</span></a>
</span><span id="Expression-104"><a href="#Expression-104"><span class="linenos">104</span></a> <span class="nd">@property</span>
</span><span id="Expression-105"><a href="#Expression-105"><span class="linenos">105</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
</span><span id="Expression-106"><a href="#Expression-106"><span class="linenos">106</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</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="n">k</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
</span><span id="Expression-107"><a href="#Expression-107"><span class="linenos">107</span></a>
</span><span id="Expression-108"><a href="#Expression-108"><span class="linenos">108</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span>
</span><span id="Expression-109"><a href="#Expression-109"><span class="linenos">109</span></a> <span class="p">(</span><span class="nb">tuple</span><span class="p">(</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">arg</span><span class="p">)</span> <span class="k">if</span> <span class="n">arg</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="Expression-110"><a href="#Expression-110"><span class="linenos">110</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span>
</span><span id="Expression-111"><a href="#Expression-111"><span class="linenos">111</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">False</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="Expression-112"><a href="#Expression-112"><span class="linenos">112</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span>
</span><span id="Expression-113"><a href="#Expression-113"><span class="linenos">113</span></a> <span class="p">)</span>
</span><span id="Expression-114"><a href="#Expression-114"><span class="linenos">114</span></a>
</span><span id="Expression-115"><a href="#Expression-115"><span class="linenos">115</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
</span><span id="Expression-116"><a href="#Expression-116"><span class="linenos">116</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression-117"><a href="#Expression-117"><span class="linenos">117</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span>
</span><span id="Expression-118"><a href="#Expression-118"><span class="linenos">118</span></a>
</span><span id="Expression-119"><a href="#Expression-119"><span class="linenos">119</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">hashable_args</span><span class="p">))</span>
</span><span id="Expression-120"><a href="#Expression-120"><span class="linenos">120</span></a>
</span><span id="Expression-121"><a href="#Expression-121"><span class="linenos">121</span></a> <span class="nd">@property</span>
</span><span id="Expression-122"><a href="#Expression-122"><span class="linenos">122</span></a> <span class="k">def</span> <span class="nf">this</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression-123"><a href="#Expression-123"><span class="linenos">123</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-124"><a href="#Expression-124"><span class="linenos">124</span></a><span class="sd"> Retrieves the argument with key &quot;this&quot;.</span>
</span><span id="Expression-125"><a href="#Expression-125"><span class="linenos">125</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-126"><a href="#Expression-126"><span class="linenos">126</span></a> <span class="k">return</span> <span class="bp">self</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;this&quot;</span><span class="p">)</span>
</span><span id="Expression-127"><a href="#Expression-127"><span class="linenos">127</span></a>
</span><span id="Expression-128"><a href="#Expression-128"><span class="linenos">128</span></a> <span class="nd">@property</span>
</span><span id="Expression-129"><a href="#Expression-129"><span class="linenos">129</span></a> <span class="k">def</span> <span class="nf">expression</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression-130"><a href="#Expression-130"><span class="linenos">130</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-131"><a href="#Expression-131"><span class="linenos">131</span></a><span class="sd"> Retrieves the argument with key &quot;expression&quot;.</span>
</span><span id="Expression-132"><a href="#Expression-132"><span class="linenos">132</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-133"><a href="#Expression-133"><span class="linenos">133</span></a> <span class="k">return</span> <span class="bp">self</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;expression&quot;</span><span class="p">)</span>
</span><span id="Expression-134"><a href="#Expression-134"><span class="linenos">134</span></a>
</span><span id="Expression-135"><a href="#Expression-135"><span class="linenos">135</span></a> <span class="nd">@property</span>
</span><span id="Expression-136"><a href="#Expression-136"><span class="linenos">136</span></a> <span class="k">def</span> <span class="nf">expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression-137"><a href="#Expression-137"><span class="linenos">137</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-138"><a href="#Expression-138"><span class="linenos">138</span></a><span class="sd"> Retrieves the argument with key &quot;expressions&quot;.</span>
</span><span id="Expression-139"><a href="#Expression-139"><span class="linenos">139</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-140"><a href="#Expression-140"><span class="linenos">140</span></a> <span class="k">return</span> <span class="bp">self</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;expressions&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
</span><span id="Expression-141"><a href="#Expression-141"><span class="linenos">141</span></a>
</span><span id="Expression-142"><a href="#Expression-142"><span class="linenos">142</span></a> <span class="k">def</span> <span class="nf">text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Expression-143"><a href="#Expression-143"><span class="linenos">143</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-144"><a href="#Expression-144"><span class="linenos">144</span></a><span class="sd"> Returns a textual representation of the argument corresponding to &quot;key&quot;. This can only be used</span>
</span><span id="Expression-145"><a href="#Expression-145"><span class="linenos">145</span></a><span class="sd"> for args that are strings or leaf Expression instances, such as identifiers and literals.</span>
</span><span id="Expression-146"><a href="#Expression-146"><span class="linenos">146</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-147"><a href="#Expression-147"><span class="linenos">147</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</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="n">key</span><span class="p">)</span>
</span><span id="Expression-148"><a href="#Expression-148"><span class="linenos">148</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="Expression-149"><a href="#Expression-149"><span class="linenos">149</span></a> <span class="k">return</span> <span class="n">field</span>
</span><span id="Expression-150"><a href="#Expression-150"><span class="linenos">150</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)):</span>
</span><span id="Expression-151"><a href="#Expression-151"><span class="linenos">151</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">this</span>
</span><span id="Expression-152"><a href="#Expression-152"><span class="linenos">152</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Star</span><span class="p">,</span> <span class="n">Null</span><span class="p">)):</span>
</span><span id="Expression-153"><a href="#Expression-153"><span class="linenos">153</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">name</span>
</span><span id="Expression-154"><a href="#Expression-154"><span class="linenos">154</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
</span><span id="Expression-155"><a href="#Expression-155"><span class="linenos">155</span></a>
</span><span id="Expression-156"><a href="#Expression-156"><span class="linenos">156</span></a> <span class="nd">@property</span>
</span><span id="Expression-157"><a href="#Expression-157"><span class="linenos">157</span></a> <span class="k">def</span> <span class="nf">is_string</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="Expression-158"><a href="#Expression-158"><span class="linenos">158</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-159"><a href="#Expression-159"><span class="linenos">159</span></a><span class="sd"> Checks whether a Literal expression is a string.</span>
</span><span id="Expression-160"><a href="#Expression-160"><span class="linenos">160</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-161"><a href="#Expression-161"><span class="linenos">161</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
</span><span id="Expression-162"><a href="#Expression-162"><span class="linenos">162</span></a>
</span><span id="Expression-163"><a href="#Expression-163"><span class="linenos">163</span></a> <span class="nd">@property</span>
</span><span id="Expression-164"><a href="#Expression-164"><span class="linenos">164</span></a> <span class="k">def</span> <span class="nf">is_number</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="Expression-165"><a href="#Expression-165"><span class="linenos">165</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-166"><a href="#Expression-166"><span class="linenos">166</span></a><span class="sd"> Checks whether a Literal expression is a number.</span>
</span><span id="Expression-167"><a href="#Expression-167"><span class="linenos">167</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-168"><a href="#Expression-168"><span class="linenos">168</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;is_string&quot;</span><span class="p">]</span>
</span><span id="Expression-169"><a href="#Expression-169"><span class="linenos">169</span></a>
</span><span id="Expression-170"><a href="#Expression-170"><span class="linenos">170</span></a> <span class="nd">@property</span>
</span><span id="Expression-171"><a href="#Expression-171"><span class="linenos">171</span></a> <span class="k">def</span> <span class="nf">is_int</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="Expression-172"><a href="#Expression-172"><span class="linenos">172</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-173"><a href="#Expression-173"><span class="linenos">173</span></a><span class="sd"> Checks whether a Literal expression is an integer.</span>
</span><span id="Expression-174"><a href="#Expression-174"><span class="linenos">174</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-175"><a href="#Expression-175"><span class="linenos">175</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_number</span><span class="p">:</span>
</span><span id="Expression-176"><a href="#Expression-176"><span class="linenos">176</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="Expression-177"><a href="#Expression-177"><span class="linenos">177</span></a> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</span><span id="Expression-178"><a href="#Expression-178"><span class="linenos">178</span></a> <span class="k">return</span> <span class="kc">True</span>
</span><span id="Expression-179"><a href="#Expression-179"><span class="linenos">179</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span>
</span><span id="Expression-180"><a href="#Expression-180"><span class="linenos">180</span></a> <span class="k">pass</span>
</span><span id="Expression-181"><a href="#Expression-181"><span class="linenos">181</span></a> <span class="k">return</span> <span class="kc">False</span>
</span><span id="Expression-182"><a href="#Expression-182"><span class="linenos">182</span></a>
</span><span id="Expression-183"><a href="#Expression-183"><span class="linenos">183</span></a> <span class="nd">@property</span>
</span><span id="Expression-184"><a href="#Expression-184"><span class="linenos">184</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="Expression-185"><a href="#Expression-185"><span class="linenos">185</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Checks whether an expression is a star.&quot;&quot;&quot;</span>
</span><span id="Expression-186"><a href="#Expression-186"><span class="linenos">186</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Star</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Star</span><span class="p">))</span>
</span><span id="Expression-187"><a href="#Expression-187"><span class="linenos">187</span></a>
</span><span id="Expression-188"><a href="#Expression-188"><span class="linenos">188</span></a> <span class="nd">@property</span>
</span><span id="Expression-189"><a href="#Expression-189"><span class="linenos">189</span></a> <span class="k">def</span> <span class="nf">alias</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Expression-190"><a href="#Expression-190"><span class="linenos">190</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-191"><a href="#Expression-191"><span class="linenos">191</span></a><span class="sd"> Returns the alias of the expression, or an empty string if it&#39;s not aliased.</span>
</span><span id="Expression-192"><a href="#Expression-192"><span class="linenos">192</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-193"><a href="#Expression-193"><span class="linenos">193</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</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;alias&quot;</span><span class="p">),</span> <span class="n">TableAlias</span><span class="p">):</span>
</span><span id="Expression-194"><a href="#Expression-194"><span class="linenos">194</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;alias&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">name</span>
</span><span id="Expression-195"><a href="#Expression-195"><span class="linenos">195</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">)</span>
</span><span id="Expression-196"><a href="#Expression-196"><span class="linenos">196</span></a>
</span><span id="Expression-197"><a href="#Expression-197"><span class="linenos">197</span></a> <span class="nd">@property</span>
</span><span id="Expression-198"><a href="#Expression-198"><span class="linenos">198</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Expression-199"><a href="#Expression-199"><span class="linenos">199</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">)</span>
</span><span id="Expression-200"><a href="#Expression-200"><span class="linenos">200</span></a>
</span><span id="Expression-201"><a href="#Expression-201"><span class="linenos">201</span></a> <span class="nd">@property</span>
</span><span id="Expression-202"><a href="#Expression-202"><span class="linenos">202</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Expression-203"><a href="#Expression-203"><span class="linenos">203</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span><span id="Expression-204"><a href="#Expression-204"><span class="linenos">204</span></a>
</span><span id="Expression-205"><a href="#Expression-205"><span class="linenos">205</span></a> <span class="nd">@property</span>
</span><span id="Expression-206"><a href="#Expression-206"><span class="linenos">206</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Expression-207"><a href="#Expression-207"><span class="linenos">207</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-208"><a href="#Expression-208"><span class="linenos">208</span></a><span class="sd"> Name of the output column if this expression is a selection.</span>
</span><span id="Expression-209"><a href="#Expression-209"><span class="linenos">209</span></a>
</span><span id="Expression-210"><a href="#Expression-210"><span class="linenos">210</span></a><span class="sd"> If the Expression has no output name, an empty string is returned.</span>
</span><span id="Expression-211"><a href="#Expression-211"><span class="linenos">211</span></a>
</span><span id="Expression-212"><a href="#Expression-212"><span class="linenos">212</span></a><span class="sd"> Example:</span>
</span><span id="Expression-213"><a href="#Expression-213"><span class="linenos">213</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
</span><span id="Expression-214"><a href="#Expression-214"><span class="linenos">214</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT a&quot;).expressions[0].output_name</span>
</span><span id="Expression-215"><a href="#Expression-215"><span class="linenos">215</span></a><span class="sd"> &#39;a&#39;</span>
</span><span id="Expression-216"><a href="#Expression-216"><span class="linenos">216</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT b AS c&quot;).expressions[0].output_name</span>
</span><span id="Expression-217"><a href="#Expression-217"><span class="linenos">217</span></a><span class="sd"> &#39;c&#39;</span>
</span><span id="Expression-218"><a href="#Expression-218"><span class="linenos">218</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;SELECT 1 + 2&quot;).expressions[0].output_name</span>
</span><span id="Expression-219"><a href="#Expression-219"><span class="linenos">219</span></a><span class="sd"> &#39;&#39;</span>
</span><span id="Expression-220"><a href="#Expression-220"><span class="linenos">220</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-221"><a href="#Expression-221"><span class="linenos">221</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
</span><span id="Expression-222"><a href="#Expression-222"><span class="linenos">222</span></a>
</span><span id="Expression-223"><a href="#Expression-223"><span class="linenos">223</span></a> <span class="nd">@property</span>
</span><span id="Expression-224"><a href="#Expression-224"><span class="linenos">224</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]:</span>
</span><span id="Expression-225"><a href="#Expression-225"><span class="linenos">225</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span>
</span><span id="Expression-226"><a href="#Expression-226"><span class="linenos">226</span></a>
</span><span id="Expression-227"><a href="#Expression-227"><span class="linenos">227</span></a> <span class="nd">@type</span><span class="o">.</span><span class="n">setter</span>
</span><span id="Expression-228"><a href="#Expression-228"><span class="linenos">228</span></a> <span class="k">def</span> <span class="nf">type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span> <span class="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression-229"><a href="#Expression-229"><span class="linenos">229</span></a> <span class="k">if</span> <span class="n">dtype</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
</span><span id="Expression-230"><a href="#Expression-230"><span class="linenos">230</span></a> <span class="n">dtype</span> <span class="o">=</span> <span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
</span><span id="Expression-231"><a href="#Expression-231"><span class="linenos">231</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="n">dtype</span> <span class="c1"># type: ignore</span>
</span><span id="Expression-232"><a href="#Expression-232"><span class="linenos">232</span></a>
</span><span id="Expression-233"><a href="#Expression-233"><span class="linenos">233</span></a> <span class="nd">@property</span>
</span><span id="Expression-234"><a href="#Expression-234"><span class="linenos">234</span></a> <span class="k">def</span> <span class="nf">meta</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]:</span>
</span><span id="Expression-235"><a href="#Expression-235"><span class="linenos">235</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression-236"><a href="#Expression-236"><span class="linenos">236</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="Expression-237"><a href="#Expression-237"><span class="linenos">237</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span>
</span><span id="Expression-238"><a href="#Expression-238"><span class="linenos">238</span></a>
</span><span id="Expression-239"><a href="#Expression-239"><span class="linenos">239</span></a> <span class="k">def</span> <span class="nf">__deepcopy__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">memo</span><span class="p">):</span>
</span><span id="Expression-240"><a href="#Expression-240"><span class="linenos">240</span></a> <span class="n">copy</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">(</span><span class="o">**</span><span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">))</span>
</span><span id="Expression-241"><a href="#Expression-241"><span class="linenos">241</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression-242"><a href="#Expression-242"><span class="linenos">242</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">)</span>
</span><span id="Expression-243"><a href="#Expression-243"><span class="linenos">243</span></a>
</span><span id="Expression-244"><a href="#Expression-244"><span class="linenos">244</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression-245"><a href="#Expression-245"><span class="linenos">245</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
</span><span id="Expression-246"><a href="#Expression-246"><span class="linenos">246</span></a>
</span><span id="Expression-247"><a href="#Expression-247"><span class="linenos">247</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression-248"><a href="#Expression-248"><span class="linenos">248</span></a> <span class="n">copy</span><span class="o">.</span><span class="n">_meta</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">)</span>
</span><span id="Expression-249"><a href="#Expression-249"><span class="linenos">249</span></a>
</span><span id="Expression-250"><a href="#Expression-250"><span class="linenos">250</span></a> <span class="k">return</span> <span class="n">copy</span>
</span><span id="Expression-251"><a href="#Expression-251"><span class="linenos">251</span></a>
</span><span id="Expression-252"><a href="#Expression-252"><span class="linenos">252</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression-253"><a href="#Expression-253"><span class="linenos">253</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-254"><a href="#Expression-254"><span class="linenos">254</span></a><span class="sd"> Returns a deep copy of the expression.</span>
</span><span id="Expression-255"><a href="#Expression-255"><span class="linenos">255</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-256"><a href="#Expression-256"><span class="linenos">256</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</span><span id="Expression-257"><a href="#Expression-257"><span class="linenos">257</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression-258"><a href="#Expression-258"><span class="linenos">258</span></a> <span class="k">return</span> <span class="n">new</span>
</span><span id="Expression-259"><a href="#Expression-259"><span class="linenos">259</span></a>
</span><span id="Expression-260"><a href="#Expression-260"><span class="linenos">260</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression-261"><a href="#Expression-261"><span class="linenos">261</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression-262"><a href="#Expression-262"><span class="linenos">262</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="Expression-263"><a href="#Expression-263"><span class="linenos">263</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
</span><span id="Expression-264"><a href="#Expression-264"><span class="linenos">264</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">comments</span><span class="p">)</span>
</span><span id="Expression-265"><a href="#Expression-265"><span class="linenos">265</span></a>
</span><span id="Expression-266"><a href="#Expression-266"><span class="linenos">266</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression-267"><a href="#Expression-267"><span class="linenos">267</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-268"><a href="#Expression-268"><span class="linenos">268</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
</span><span id="Expression-269"><a href="#Expression-269"><span class="linenos">269</span></a>
</span><span id="Expression-270"><a href="#Expression-270"><span class="linenos">270</span></a><span class="sd"> Args:</span>
</span><span id="Expression-271"><a href="#Expression-271"><span class="linenos">271</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
</span><span id="Expression-272"><a href="#Expression-272"><span class="linenos">272</span></a><span class="sd"> value (Any): value to append to the list</span>
</span><span id="Expression-273"><a href="#Expression-273"><span class="linenos">273</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-274"><a href="#Expression-274"><span class="linenos">274</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</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="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
</span><span id="Expression-275"><a href="#Expression-275"><span class="linenos">275</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="Expression-276"><a href="#Expression-276"><span class="linenos">276</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
</span><span id="Expression-277"><a href="#Expression-277"><span class="linenos">277</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span><span id="Expression-278"><a href="#Expression-278"><span class="linenos">278</span></a>
</span><span id="Expression-279"><a href="#Expression-279"><span class="linenos">279</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression-280"><a href="#Expression-280"><span class="linenos">280</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-281"><a href="#Expression-281"><span class="linenos">281</span></a><span class="sd"> Sets `arg_key` to `value`.</span>
</span><span id="Expression-282"><a href="#Expression-282"><span class="linenos">282</span></a>
</span><span id="Expression-283"><a href="#Expression-283"><span class="linenos">283</span></a><span class="sd"> Args:</span>
</span><span id="Expression-284"><a href="#Expression-284"><span class="linenos">284</span></a><span class="sd"> arg_key (str): name of the expression arg.</span>
</span><span id="Expression-285"><a href="#Expression-285"><span class="linenos">285</span></a><span class="sd"> value: value to set the arg to.</span>
</span><span id="Expression-286"><a href="#Expression-286"><span class="linenos">286</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-287"><a href="#Expression-287"><span class="linenos">287</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
</span><span id="Expression-288"><a href="#Expression-288"><span class="linenos">288</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span><span id="Expression-289"><a href="#Expression-289"><span class="linenos">289</span></a>
</span><span id="Expression-290"><a href="#Expression-290"><span class="linenos">290</span></a> <span class="k">def</span> <span class="nf">_set_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression-291"><a href="#Expression-291"><span class="linenos">291</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
</span><span id="Expression-292"><a href="#Expression-292"><span class="linenos">292</span></a> <span class="n">value</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
</span><span id="Expression-293"><a href="#Expression-293"><span class="linenos">293</span></a> <span class="n">value</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
</span><span id="Expression-294"><a href="#Expression-294"><span class="linenos">294</span></a> <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
</span><span id="Expression-295"><a href="#Expression-295"><span class="linenos">295</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">:</span>
</span><span id="Expression-296"><a href="#Expression-296"><span class="linenos">296</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
</span><span id="Expression-297"><a href="#Expression-297"><span class="linenos">297</span></a> <span class="n">v</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span>
</span><span id="Expression-298"><a href="#Expression-298"><span class="linenos">298</span></a> <span class="n">v</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">arg_key</span>
</span><span id="Expression-299"><a href="#Expression-299"><span class="linenos">299</span></a>
</span><span id="Expression-300"><a href="#Expression-300"><span class="linenos">300</span></a> <span class="nd">@property</span>
</span><span id="Expression-301"><a href="#Expression-301"><span class="linenos">301</span></a> <span class="k">def</span> <span class="nf">depth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
</span><span id="Expression-302"><a href="#Expression-302"><span class="linenos">302</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-303"><a href="#Expression-303"><span class="linenos">303</span></a><span class="sd"> Returns the depth of this tree.</span>
</span><span id="Expression-304"><a href="#Expression-304"><span class="linenos">304</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-305"><a href="#Expression-305"><span class="linenos">305</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
</span><span id="Expression-306"><a href="#Expression-306"><span class="linenos">306</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">depth</span> <span class="o">+</span> <span class="mi">1</span>
</span><span id="Expression-307"><a href="#Expression-307"><span class="linenos">307</span></a> <span class="k">return</span> <span class="mi">0</span>
</span><span id="Expression-308"><a href="#Expression-308"><span class="linenos">308</span></a>
</span><span id="Expression-309"><a href="#Expression-309"><span class="linenos">309</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
</span><span id="Expression-310"><a href="#Expression-310"><span class="linenos">310</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
</span><span id="Expression-311"><a href="#Expression-311"><span class="linenos">311</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="Expression-312"><a href="#Expression-312"><span class="linenos">312</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
</span><span id="Expression-313"><a href="#Expression-313"><span class="linenos">313</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
</span><span id="Expression-314"><a href="#Expression-314"><span class="linenos">314</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
</span><span id="Expression-315"><a href="#Expression-315"><span class="linenos">315</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
</span><span id="Expression-316"><a href="#Expression-316"><span class="linenos">316</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="Expression-317"><a href="#Expression-317"><span class="linenos">317</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
</span><span id="Expression-318"><a href="#Expression-318"><span class="linenos">318</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
</span><span id="Expression-319"><a href="#Expression-319"><span class="linenos">319</span></a>
</span><span id="Expression-320"><a href="#Expression-320"><span class="linenos">320</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
</span><span id="Expression-321"><a href="#Expression-321"><span class="linenos">321</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-322"><a href="#Expression-322"><span class="linenos">322</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
</span><span id="Expression-323"><a href="#Expression-323"><span class="linenos">323</span></a><span class="sd"> the specified types.</span>
</span><span id="Expression-324"><a href="#Expression-324"><span class="linenos">324</span></a>
</span><span id="Expression-325"><a href="#Expression-325"><span class="linenos">325</span></a><span class="sd"> Args:</span>
</span><span id="Expression-326"><a href="#Expression-326"><span class="linenos">326</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
</span><span id="Expression-327"><a href="#Expression-327"><span class="linenos">327</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
</span><span id="Expression-328"><a href="#Expression-328"><span class="linenos">328</span></a>
</span><span id="Expression-329"><a href="#Expression-329"><span class="linenos">329</span></a><span class="sd"> Returns:</span>
</span><span id="Expression-330"><a href="#Expression-330"><span class="linenos">330</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
</span><span id="Expression-331"><a href="#Expression-331"><span class="linenos">331</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-332"><a href="#Expression-332"><span class="linenos">332</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="Expression-333"><a href="#Expression-333"><span class="linenos">333</span></a>
</span><span id="Expression-334"><a href="#Expression-334"><span class="linenos">334</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
</span><span id="Expression-335"><a href="#Expression-335"><span class="linenos">335</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-336"><a href="#Expression-336"><span class="linenos">336</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
</span><span id="Expression-337"><a href="#Expression-337"><span class="linenos">337</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
</span><span id="Expression-338"><a href="#Expression-338"><span class="linenos">338</span></a>
</span><span id="Expression-339"><a href="#Expression-339"><span class="linenos">339</span></a><span class="sd"> Args:</span>
</span><span id="Expression-340"><a href="#Expression-340"><span class="linenos">340</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
</span><span id="Expression-341"><a href="#Expression-341"><span class="linenos">341</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
</span><span id="Expression-342"><a href="#Expression-342"><span class="linenos">342</span></a>
</span><span id="Expression-343"><a href="#Expression-343"><span class="linenos">343</span></a><span class="sd"> Returns:</span>
</span><span id="Expression-344"><a href="#Expression-344"><span class="linenos">344</span></a><span class="sd"> The generator object.</span>
</span><span id="Expression-345"><a href="#Expression-345"><span class="linenos">345</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-346"><a href="#Expression-346"><span class="linenos">346</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
</span><span id="Expression-347"><a href="#Expression-347"><span class="linenos">347</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
</span><span id="Expression-348"><a href="#Expression-348"><span class="linenos">348</span></a> <span class="k">yield</span> <span class="n">expression</span>
</span><span id="Expression-349"><a href="#Expression-349"><span class="linenos">349</span></a>
</span><span id="Expression-350"><a href="#Expression-350"><span class="linenos">350</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
</span><span id="Expression-351"><a href="#Expression-351"><span class="linenos">351</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-352"><a href="#Expression-352"><span class="linenos">352</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
</span><span id="Expression-353"><a href="#Expression-353"><span class="linenos">353</span></a>
</span><span id="Expression-354"><a href="#Expression-354"><span class="linenos">354</span></a><span class="sd"> Args:</span>
</span><span id="Expression-355"><a href="#Expression-355"><span class="linenos">355</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
</span><span id="Expression-356"><a href="#Expression-356"><span class="linenos">356</span></a>
</span><span id="Expression-357"><a href="#Expression-357"><span class="linenos">357</span></a><span class="sd"> Returns:</span>
</span><span id="Expression-358"><a href="#Expression-358"><span class="linenos">358</span></a><span class="sd"> The parent node.</span>
</span><span id="Expression-359"><a href="#Expression-359"><span class="linenos">359</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-360"><a href="#Expression-360"><span class="linenos">360</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression-361"><a href="#Expression-361"><span class="linenos">361</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
</span><span id="Expression-362"><a href="#Expression-362"><span class="linenos">362</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression-363"><a href="#Expression-363"><span class="linenos">363</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
</span><span id="Expression-364"><a href="#Expression-364"><span class="linenos">364</span></a>
</span><span id="Expression-365"><a href="#Expression-365"><span class="linenos">365</span></a> <span class="nd">@property</span>
</span><span id="Expression-366"><a href="#Expression-366"><span class="linenos">366</span></a> <span class="k">def</span> <span class="nf">parent_select</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Select</span><span class="p">]:</span>
</span><span id="Expression-367"><a href="#Expression-367"><span class="linenos">367</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-368"><a href="#Expression-368"><span class="linenos">368</span></a><span class="sd"> Returns the parent select statement.</span>
</span><span id="Expression-369"><a href="#Expression-369"><span class="linenos">369</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-370"><a href="#Expression-370"><span class="linenos">370</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">Select</span><span class="p">)</span>
</span><span id="Expression-371"><a href="#Expression-371"><span class="linenos">371</span></a>
</span><span id="Expression-372"><a href="#Expression-372"><span class="linenos">372</span></a> <span class="nd">@property</span>
</span><span id="Expression-373"><a href="#Expression-373"><span class="linenos">373</span></a> <span class="k">def</span> <span class="nf">same_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="Expression-374"><a href="#Expression-374"><span class="linenos">374</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns if the parent is the same class as itself.&quot;&quot;&quot;</span>
</span><span id="Expression-375"><a href="#Expression-375"><span class="linenos">375</span></a> <span class="k">return</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span>
</span><span id="Expression-376"><a href="#Expression-376"><span class="linenos">376</span></a>
</span><span id="Expression-377"><a href="#Expression-377"><span class="linenos">377</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="Expression-378"><a href="#Expression-378"><span class="linenos">378</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-379"><a href="#Expression-379"><span class="linenos">379</span></a><span class="sd"> Returns the root expression of this tree.</span>
</span><span id="Expression-380"><a href="#Expression-380"><span class="linenos">380</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-381"><a href="#Expression-381"><span class="linenos">381</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
</span><span id="Expression-382"><a href="#Expression-382"><span class="linenos">382</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
</span><span id="Expression-383"><a href="#Expression-383"><span class="linenos">383</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression-384"><a href="#Expression-384"><span class="linenos">384</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="Expression-385"><a href="#Expression-385"><span class="linenos">385</span></a>
</span><span id="Expression-386"><a href="#Expression-386"><span class="linenos">386</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="Expression-387"><a href="#Expression-387"><span class="linenos">387</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-388"><a href="#Expression-388"><span class="linenos">388</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
</span><span id="Expression-389"><a href="#Expression-389"><span class="linenos">389</span></a>
</span><span id="Expression-390"><a href="#Expression-390"><span class="linenos">390</span></a><span class="sd"> Args:</span>
</span><span id="Expression-391"><a href="#Expression-391"><span class="linenos">391</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
</span><span id="Expression-392"><a href="#Expression-392"><span class="linenos">392</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
</span><span id="Expression-393"><a href="#Expression-393"><span class="linenos">393</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
</span><span id="Expression-394"><a href="#Expression-394"><span class="linenos">394</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
</span><span id="Expression-395"><a href="#Expression-395"><span class="linenos">395</span></a>
</span><span id="Expression-396"><a href="#Expression-396"><span class="linenos">396</span></a><span class="sd"> Returns:</span>
</span><span id="Expression-397"><a href="#Expression-397"><span class="linenos">397</span></a><span class="sd"> the generator object.</span>
</span><span id="Expression-398"><a href="#Expression-398"><span class="linenos">398</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-399"><a href="#Expression-399"><span class="linenos">399</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
</span><span id="Expression-400"><a href="#Expression-400"><span class="linenos">400</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
</span><span id="Expression-401"><a href="#Expression-401"><span class="linenos">401</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="Expression-402"><a href="#Expression-402"><span class="linenos">402</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
</span><span id="Expression-403"><a href="#Expression-403"><span class="linenos">403</span></a>
</span><span id="Expression-404"><a href="#Expression-404"><span class="linenos">404</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="Expression-405"><a href="#Expression-405"><span class="linenos">405</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-406"><a href="#Expression-406"><span class="linenos">406</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
</span><span id="Expression-407"><a href="#Expression-407"><span class="linenos">407</span></a><span class="sd"> the DFS (Depth-first) order.</span>
</span><span id="Expression-408"><a href="#Expression-408"><span class="linenos">408</span></a>
</span><span id="Expression-409"><a href="#Expression-409"><span class="linenos">409</span></a><span class="sd"> Returns:</span>
</span><span id="Expression-410"><a href="#Expression-410"><span class="linenos">410</span></a><span class="sd"> The generator object.</span>
</span><span id="Expression-411"><a href="#Expression-411"><span class="linenos">411</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-412"><a href="#Expression-412"><span class="linenos">412</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression-413"><a href="#Expression-413"><span class="linenos">413</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
</span><span id="Expression-414"><a href="#Expression-414"><span class="linenos">414</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
</span><span id="Expression-415"><a href="#Expression-415"><span class="linenos">415</span></a> <span class="k">return</span>
</span><span id="Expression-416"><a href="#Expression-416"><span class="linenos">416</span></a>
</span><span id="Expression-417"><a href="#Expression-417"><span class="linenos">417</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
</span><span id="Expression-418"><a href="#Expression-418"><span class="linenos">418</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
</span><span id="Expression-419"><a href="#Expression-419"><span class="linenos">419</span></a>
</span><span id="Expression-420"><a href="#Expression-420"><span class="linenos">420</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="Expression-421"><a href="#Expression-421"><span class="linenos">421</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-422"><a href="#Expression-422"><span class="linenos">422</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
</span><span id="Expression-423"><a href="#Expression-423"><span class="linenos">423</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
</span><span id="Expression-424"><a href="#Expression-424"><span class="linenos">424</span></a>
</span><span id="Expression-425"><a href="#Expression-425"><span class="linenos">425</span></a><span class="sd"> Returns:</span>
</span><span id="Expression-426"><a href="#Expression-426"><span class="linenos">426</span></a><span class="sd"> The generator object.</span>
</span><span id="Expression-427"><a href="#Expression-427"><span class="linenos">427</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-428"><a href="#Expression-428"><span class="linenos">428</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
</span><span id="Expression-429"><a href="#Expression-429"><span class="linenos">429</span></a>
</span><span id="Expression-430"><a href="#Expression-430"><span class="linenos">430</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
</span><span id="Expression-431"><a href="#Expression-431"><span class="linenos">431</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
</span><span id="Expression-432"><a href="#Expression-432"><span class="linenos">432</span></a>
</span><span id="Expression-433"><a href="#Expression-433"><span class="linenos">433</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
</span><span id="Expression-434"><a href="#Expression-434"><span class="linenos">434</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
</span><span id="Expression-435"><a href="#Expression-435"><span class="linenos">435</span></a> <span class="k">continue</span>
</span><span id="Expression-436"><a href="#Expression-436"><span class="linenos">436</span></a>
</span><span id="Expression-437"><a href="#Expression-437"><span class="linenos">437</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
</span><span id="Expression-438"><a href="#Expression-438"><span class="linenos">438</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
</span><span id="Expression-439"><a href="#Expression-439"><span class="linenos">439</span></a>
</span><span id="Expression-440"><a href="#Expression-440"><span class="linenos">440</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression-441"><a href="#Expression-441"><span class="linenos">441</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-442"><a href="#Expression-442"><span class="linenos">442</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
</span><span id="Expression-443"><a href="#Expression-443"><span class="linenos">443</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-444"><a href="#Expression-444"><span class="linenos">444</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
</span><span id="Expression-445"><a href="#Expression-445"><span class="linenos">445</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
</span><span id="Expression-446"><a href="#Expression-446"><span class="linenos">446</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
</span><span id="Expression-447"><a href="#Expression-447"><span class="linenos">447</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="Expression-448"><a href="#Expression-448"><span class="linenos">448</span></a>
</span><span id="Expression-449"><a href="#Expression-449"><span class="linenos">449</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression-450"><a href="#Expression-450"><span class="linenos">450</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-451"><a href="#Expression-451"><span class="linenos">451</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
</span><span id="Expression-452"><a href="#Expression-452"><span class="linenos">452</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-453"><a href="#Expression-453"><span class="linenos">453</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
</span><span id="Expression-454"><a href="#Expression-454"><span class="linenos">454</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
</span><span id="Expression-455"><a href="#Expression-455"><span class="linenos">455</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="Expression-456"><a href="#Expression-456"><span class="linenos">456</span></a>
</span><span id="Expression-457"><a href="#Expression-457"><span class="linenos">457</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression-458"><a href="#Expression-458"><span class="linenos">458</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-459"><a href="#Expression-459"><span class="linenos">459</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
</span><span id="Expression-460"><a href="#Expression-460"><span class="linenos">460</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-461"><a href="#Expression-461"><span class="linenos">461</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
</span><span id="Expression-462"><a href="#Expression-462"><span class="linenos">462</span></a>
</span><span id="Expression-463"><a href="#Expression-463"><span class="linenos">463</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="Expression-464"><a href="#Expression-464"><span class="linenos">464</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-465"><a href="#Expression-465"><span class="linenos">465</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</span>
</span><span id="Expression-466"><a href="#Expression-466"><span class="linenos">466</span></a>
</span><span id="Expression-467"><a href="#Expression-467"><span class="linenos">467</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
</span><span id="Expression-468"><a href="#Expression-468"><span class="linenos">468</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-469"><a href="#Expression-469"><span class="linenos">469</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
</span><span id="Expression-470"><a href="#Expression-470"><span class="linenos">470</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
</span><span id="Expression-471"><a href="#Expression-471"><span class="linenos">471</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
</span><span id="Expression-472"><a href="#Expression-472"><span class="linenos">472</span></a>
</span><span id="Expression-473"><a href="#Expression-473"><span class="linenos">473</span></a> <span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Expression-474"><a href="#Expression-474"><span class="linenos">474</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
</span><span id="Expression-475"><a href="#Expression-475"><span class="linenos">475</span></a>
</span><span id="Expression-476"><a href="#Expression-476"><span class="linenos">476</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Expression-477"><a href="#Expression-477"><span class="linenos">477</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_to_s</span><span class="p">()</span>
</span><span id="Expression-478"><a href="#Expression-478"><span class="linenos">478</span></a>
</span><span id="Expression-479"><a href="#Expression-479"><span class="linenos">479</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Expression-480"><a href="#Expression-480"><span class="linenos">480</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-481"><a href="#Expression-481"><span class="linenos">481</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
</span><span id="Expression-482"><a href="#Expression-482"><span class="linenos">482</span></a>
</span><span id="Expression-483"><a href="#Expression-483"><span class="linenos">483</span></a><span class="sd"> Args:</span>
</span><span id="Expression-484"><a href="#Expression-484"><span class="linenos">484</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
</span><span id="Expression-485"><a href="#Expression-485"><span class="linenos">485</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
</span><span id="Expression-486"><a href="#Expression-486"><span class="linenos">486</span></a>
</span><span id="Expression-487"><a href="#Expression-487"><span class="linenos">487</span></a><span class="sd"> Returns:</span>
</span><span id="Expression-488"><a href="#Expression-488"><span class="linenos">488</span></a><span class="sd"> The SQL string.</span>
</span><span id="Expression-489"><a href="#Expression-489"><span class="linenos">489</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-490"><a href="#Expression-490"><span class="linenos">490</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
</span><span id="Expression-491"><a href="#Expression-491"><span class="linenos">491</span></a>
</span><span id="Expression-492"><a href="#Expression-492"><span class="linenos">492</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="Expression-493"><a href="#Expression-493"><span class="linenos">493</span></a>
</span><span id="Expression-494"><a href="#Expression-494"><span class="linenos">494</span></a> <span class="k">def</span> <span class="nf">_to_s</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hide_missing</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Expression-495"><a href="#Expression-495"><span class="linenos">495</span></a> <span class="n">indent</span> <span class="o">=</span> <span class="s2">&quot;&quot;</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">level</span> <span class="k">else</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span>
</span><span id="Expression-496"><a href="#Expression-496"><span class="linenos">496</span></a> <span class="n">indent</span> <span class="o">+=</span> <span class="s2">&quot;&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s2">&quot; &quot;</span><span class="p">]</span> <span class="o">*</span> <span class="n">level</span><span class="p">)</span>
</span><span id="Expression-497"><a href="#Expression-497"><span class="linenos">497</span></a> <span class="n">left</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> &quot;</span>
</span><span id="Expression-498"><a href="#Expression-498"><span class="linenos">498</span></a>
</span><span id="Expression-499"><a href="#Expression-499"><span class="linenos">499</span></a> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Expression-500"><a href="#Expression-500"><span class="linenos">500</span></a> <span class="n">k</span><span class="p">:</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
</span><span id="Expression-501"><a href="#Expression-501"><span class="linenos">501</span></a> <span class="n">v</span><span class="o">.</span><span class="n">_to_s</span><span class="p">(</span><span class="n">hide_missing</span><span class="o">=</span><span class="n">hide_missing</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="n">level</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
</span><span id="Expression-502"><a href="#Expression-502"><span class="linenos">502</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;_to_s&quot;</span><span class="p">)</span>
</span><span id="Expression-503"><a href="#Expression-503"><span class="linenos">503</span></a> <span class="k">else</span> <span class="nb">str</span><span class="p">(</span><span class="n">v</span><span class="p">)</span>
</span><span id="Expression-504"><a href="#Expression-504"><span class="linenos">504</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span>
</span><span id="Expression-505"><a href="#Expression-505"><span class="linenos">505</span></a> <span class="k">if</span> <span class="n">v</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
</span><span id="Expression-506"><a href="#Expression-506"><span class="linenos">506</span></a> <span class="p">)</span>
</span><span id="Expression-507"><a href="#Expression-507"><span class="linenos">507</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
</span><span id="Expression-508"><a href="#Expression-508"><span class="linenos">508</span></a> <span class="p">}</span>
</span><span id="Expression-509"><a href="#Expression-509"><span class="linenos">509</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;comments&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span>
</span><span id="Expression-510"><a href="#Expression-510"><span class="linenos">510</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;type&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">type</span>
</span><span id="Expression-511"><a href="#Expression-511"><span class="linenos">511</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">v</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">hide_missing</span><span class="p">}</span>
</span><span id="Expression-512"><a href="#Expression-512"><span class="linenos">512</span></a>
</span><span id="Expression-513"><a href="#Expression-513"><span class="linenos">513</span></a> <span class="n">right</span> <span class="o">=</span> <span class="s2">&quot;, &quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">v</span><span class="si">}</span><span class="s2">&quot;</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">())</span>
</span><span id="Expression-514"><a href="#Expression-514"><span class="linenos">514</span></a> <span class="n">right</span> <span class="o">+=</span> <span class="s2">&quot;)&quot;</span>
</span><span id="Expression-515"><a href="#Expression-515"><span class="linenos">515</span></a>
</span><span id="Expression-516"><a href="#Expression-516"><span class="linenos">516</span></a> <span class="k">return</span> <span class="n">indent</span> <span class="o">+</span> <span class="n">left</span> <span class="o">+</span> <span class="n">right</span>
</span><span id="Expression-517"><a href="#Expression-517"><span class="linenos">517</span></a>
</span><span id="Expression-518"><a href="#Expression-518"><span class="linenos">518</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="Expression-519"><a href="#Expression-519"><span class="linenos">519</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-520"><a href="#Expression-520"><span class="linenos">520</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
</span><span id="Expression-521"><a href="#Expression-521"><span class="linenos">521</span></a><span class="sd"> and applies the given transformation function to each node.</span>
</span><span id="Expression-522"><a href="#Expression-522"><span class="linenos">522</span></a>
</span><span id="Expression-523"><a href="#Expression-523"><span class="linenos">523</span></a><span class="sd"> Args:</span>
</span><span id="Expression-524"><a href="#Expression-524"><span class="linenos">524</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
</span><span id="Expression-525"><a href="#Expression-525"><span class="linenos">525</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
</span><span id="Expression-526"><a href="#Expression-526"><span class="linenos">526</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
</span><span id="Expression-527"><a href="#Expression-527"><span class="linenos">527</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
</span><span id="Expression-528"><a href="#Expression-528"><span class="linenos">528</span></a><span class="sd"> modified in place.</span>
</span><span id="Expression-529"><a href="#Expression-529"><span class="linenos">529</span></a>
</span><span id="Expression-530"><a href="#Expression-530"><span class="linenos">530</span></a><span class="sd"> Returns:</span>
</span><span id="Expression-531"><a href="#Expression-531"><span class="linenos">531</span></a><span class="sd"> The transformed tree.</span>
</span><span id="Expression-532"><a href="#Expression-532"><span class="linenos">532</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-533"><a href="#Expression-533"><span class="linenos">533</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
</span><span id="Expression-534"><a href="#Expression-534"><span class="linenos">534</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="Expression-535"><a href="#Expression-535"><span class="linenos">535</span></a>
</span><span id="Expression-536"><a href="#Expression-536"><span class="linenos">536</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="Expression-537"><a href="#Expression-537"><span class="linenos">537</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span><span id="Expression-538"><a href="#Expression-538"><span class="linenos">538</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
</span><span id="Expression-539"><a href="#Expression-539"><span class="linenos">539</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression-540"><a href="#Expression-540"><span class="linenos">540</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span><span id="Expression-541"><a href="#Expression-541"><span class="linenos">541</span></a>
</span><span id="Expression-542"><a href="#Expression-542"><span class="linenos">542</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
</span><span id="Expression-543"><a href="#Expression-543"><span class="linenos">543</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span><span id="Expression-544"><a href="#Expression-544"><span class="linenos">544</span></a>
</span><span id="Expression-545"><a href="#Expression-545"><span class="linenos">545</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
</span><span id="Expression-546"><a href="#Expression-546"><span class="linenos">546</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="Expression-547"><a href="#Expression-547"><span class="linenos">547</span></a> <span class="o">...</span>
</span><span id="Expression-548"><a href="#Expression-548"><span class="linenos">548</span></a>
</span><span id="Expression-549"><a href="#Expression-549"><span class="linenos">549</span></a> <span class="nd">@t</span><span class="o">.</span><span class="n">overload</span>
</span><span id="Expression-550"><a href="#Expression-550"><span class="linenos">550</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression-551"><a href="#Expression-551"><span class="linenos">551</span></a> <span class="o">...</span>
</span><span id="Expression-552"><a href="#Expression-552"><span class="linenos">552</span></a>
</span><span id="Expression-553"><a href="#Expression-553"><span class="linenos">553</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
</span><span id="Expression-554"><a href="#Expression-554"><span class="linenos">554</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-555"><a href="#Expression-555"><span class="linenos">555</span></a><span class="sd"> Swap out this expression with a new expression.</span>
</span><span id="Expression-556"><a href="#Expression-556"><span class="linenos">556</span></a>
</span><span id="Expression-557"><a href="#Expression-557"><span class="linenos">557</span></a><span class="sd"> For example::</span>
</span><span id="Expression-558"><a href="#Expression-558"><span class="linenos">558</span></a>
</span><span id="Expression-559"><a href="#Expression-559"><span class="linenos">559</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
</span><span id="Expression-560"><a href="#Expression-560"><span class="linenos">560</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
</span><span id="Expression-561"><a href="#Expression-561"><span class="linenos">561</span></a><span class="sd"> (COLUMN this: y)</span>
</span><span id="Expression-562"><a href="#Expression-562"><span class="linenos">562</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
</span><span id="Expression-563"><a href="#Expression-563"><span class="linenos">563</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
</span><span id="Expression-564"><a href="#Expression-564"><span class="linenos">564</span></a>
</span><span id="Expression-565"><a href="#Expression-565"><span class="linenos">565</span></a><span class="sd"> Args:</span>
</span><span id="Expression-566"><a href="#Expression-566"><span class="linenos">566</span></a><span class="sd"> expression: new node</span>
</span><span id="Expression-567"><a href="#Expression-567"><span class="linenos">567</span></a>
</span><span id="Expression-568"><a href="#Expression-568"><span class="linenos">568</span></a><span class="sd"> Returns:</span>
</span><span id="Expression-569"><a href="#Expression-569"><span class="linenos">569</span></a><span class="sd"> The new expression or expressions.</span>
</span><span id="Expression-570"><a href="#Expression-570"><span class="linenos">570</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-571"><a href="#Expression-571"><span class="linenos">571</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
</span><span id="Expression-572"><a href="#Expression-572"><span class="linenos">572</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="Expression-573"><a href="#Expression-573"><span class="linenos">573</span></a>
</span><span id="Expression-574"><a href="#Expression-574"><span class="linenos">574</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression-575"><a href="#Expression-575"><span class="linenos">575</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression-576"><a href="#Expression-576"><span class="linenos">576</span></a>
</span><span id="Expression-577"><a href="#Expression-577"><span class="linenos">577</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
</span><span id="Expression-578"><a href="#Expression-578"><span class="linenos">578</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="Expression-579"><a href="#Expression-579"><span class="linenos">579</span></a>
</span><span id="Expression-580"><a href="#Expression-580"><span class="linenos">580</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="Expression-581"><a href="#Expression-581"><span class="linenos">581</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-582"><a href="#Expression-582"><span class="linenos">582</span></a><span class="sd"> Remove this expression from its AST.</span>
</span><span id="Expression-583"><a href="#Expression-583"><span class="linenos">583</span></a>
</span><span id="Expression-584"><a href="#Expression-584"><span class="linenos">584</span></a><span class="sd"> Returns:</span>
</span><span id="Expression-585"><a href="#Expression-585"><span class="linenos">585</span></a><span class="sd"> The popped expression.</span>
</span><span id="Expression-586"><a href="#Expression-586"><span class="linenos">586</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-587"><a href="#Expression-587"><span class="linenos">587</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
</span><span id="Expression-588"><a href="#Expression-588"><span class="linenos">588</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="Expression-589"><a href="#Expression-589"><span class="linenos">589</span></a>
</span><span id="Expression-590"><a href="#Expression-590"><span class="linenos">590</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="Expression-591"><a href="#Expression-591"><span class="linenos">591</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-592"><a href="#Expression-592"><span class="linenos">592</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
</span><span id="Expression-593"><a href="#Expression-593"><span class="linenos">593</span></a>
</span><span id="Expression-594"><a href="#Expression-594"><span class="linenos">594</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
</span><span id="Expression-595"><a href="#Expression-595"><span class="linenos">595</span></a><span class="sd"> Otherwise, this returns this expression.</span>
</span><span id="Expression-596"><a href="#Expression-596"><span class="linenos">596</span></a>
</span><span id="Expression-597"><a href="#Expression-597"><span class="linenos">597</span></a><span class="sd"> Examples:</span>
</span><span id="Expression-598"><a href="#Expression-598"><span class="linenos">598</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
</span><span id="Expression-599"><a href="#Expression-599"><span class="linenos">599</span></a>
</span><span id="Expression-600"><a href="#Expression-600"><span class="linenos">600</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="Expression-601"><a href="#Expression-601"><span class="linenos">601</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
</span><span id="Expression-602"><a href="#Expression-602"><span class="linenos">602</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
</span><span id="Expression-603"><a href="#Expression-603"><span class="linenos">603</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-604"><a href="#Expression-604"><span class="linenos">604</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
</span><span id="Expression-605"><a href="#Expression-605"><span class="linenos">605</span></a> <span class="k">return</span> <span class="bp">self</span>
</span><span id="Expression-606"><a href="#Expression-606"><span class="linenos">606</span></a>
</span><span id="Expression-607"><a href="#Expression-607"><span class="linenos">607</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="Expression-608"><a href="#Expression-608"><span class="linenos">608</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-609"><a href="#Expression-609"><span class="linenos">609</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
</span><span id="Expression-610"><a href="#Expression-610"><span class="linenos">610</span></a>
</span><span id="Expression-611"><a href="#Expression-611"><span class="linenos">611</span></a><span class="sd"> Args:</span>
</span><span id="Expression-612"><a href="#Expression-612"><span class="linenos">612</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
</span><span id="Expression-613"><a href="#Expression-613"><span class="linenos">613</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
</span><span id="Expression-614"><a href="#Expression-614"><span class="linenos">614</span></a>
</span><span id="Expression-615"><a href="#Expression-615"><span class="linenos">615</span></a><span class="sd"> Returns:</span>
</span><span id="Expression-616"><a href="#Expression-616"><span class="linenos">616</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
</span><span id="Expression-617"><a href="#Expression-617"><span class="linenos">617</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-618"><a href="#Expression-618"><span class="linenos">618</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="Expression-619"><a href="#Expression-619"><span class="linenos">619</span></a>
</span><span id="Expression-620"><a href="#Expression-620"><span class="linenos">620</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
</span><span id="Expression-621"><a href="#Expression-621"><span class="linenos">621</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
</span><span id="Expression-622"><a href="#Expression-622"><span class="linenos">622</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="Expression-623"><a href="#Expression-623"><span class="linenos">623</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="Expression-624"><a href="#Expression-624"><span class="linenos">624</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</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="n">k</span><span class="p">)</span>
</span><span id="Expression-625"><a href="#Expression-625"><span class="linenos">625</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
</span><span id="Expression-626"><a href="#Expression-626"><span class="linenos">626</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="Expression-627"><a href="#Expression-627"><span class="linenos">627</span></a>
</span><span id="Expression-628"><a href="#Expression-628"><span class="linenos">628</span></a> <span class="k">if</span> <span class="p">(</span>
</span><span id="Expression-629"><a href="#Expression-629"><span class="linenos">629</span></a> <span class="n">args</span>
</span><span id="Expression-630"><a href="#Expression-630"><span class="linenos">630</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
</span><span id="Expression-631"><a href="#Expression-631"><span class="linenos">631</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
</span><span id="Expression-632"><a href="#Expression-632"><span class="linenos">632</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
</span><span id="Expression-633"><a href="#Expression-633"><span class="linenos">633</span></a> <span class="p">):</span>
</span><span id="Expression-634"><a href="#Expression-634"><span class="linenos">634</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
</span><span id="Expression-635"><a href="#Expression-635"><span class="linenos">635</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
</span><span id="Expression-636"><a href="#Expression-636"><span class="linenos">636</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
</span><span id="Expression-637"><a href="#Expression-637"><span class="linenos">637</span></a> <span class="p">)</span>
</span><span id="Expression-638"><a href="#Expression-638"><span class="linenos">638</span></a>
</span><span id="Expression-639"><a href="#Expression-639"><span class="linenos">639</span></a> <span class="k">return</span> <span class="n">errors</span>
</span><span id="Expression-640"><a href="#Expression-640"><span class="linenos">640</span></a>
</span><span id="Expression-641"><a href="#Expression-641"><span class="linenos">641</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression-642"><a href="#Expression-642"><span class="linenos">642</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-643"><a href="#Expression-643"><span class="linenos">643</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
</span><span id="Expression-644"><a href="#Expression-644"><span class="linenos">644</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-645"><a href="#Expression-645"><span class="linenos">645</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
</span><span id="Expression-646"><a href="#Expression-646"><span class="linenos">646</span></a>
</span><span id="Expression-647"><a href="#Expression-647"><span class="linenos">647</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</span><span id="Expression-648"><a href="#Expression-648"><span class="linenos">648</span></a>
</span><span id="Expression-649"><a href="#Expression-649"><span class="linenos">649</span></a> <span class="nd">@classmethod</span>
</span><span id="Expression-650"><a href="#Expression-650"><span class="linenos">650</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
</span><span id="Expression-651"><a href="#Expression-651"><span class="linenos">651</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression-652"><a href="#Expression-652"><span class="linenos">652</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
</span><span id="Expression-653"><a href="#Expression-653"><span class="linenos">653</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression-654"><a href="#Expression-654"><span class="linenos">654</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
</span><span id="Expression-655"><a href="#Expression-655"><span class="linenos">655</span></a>
</span><span id="Expression-656"><a href="#Expression-656"><span class="linenos">656</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>The base class for all expressions in a syntax tree. Each Expression encapsulates any necessary
context, such as its child expressions, their names (arg keys), and whether a given child expression
is optional or not.</p>
<h6 id="attributes">Attributes:</h6>
<ul>
<li><strong>key:</strong> a unique key for each class in the Expression hierarchy. This is useful for hashing
and representing expressions as strings.</li>
<li><strong>arg_types:</strong> determines what arguments (child nodes) are supported by an expression. It
maps arg keys to booleans that indicate whether the corresponding args are optional.</li>
<li><strong>parent:</strong> a reference to the parent expression (or None, in case of root expressions).</li>
<li><strong>arg_key:</strong> the arg key an expression is associated with, i.e. the name its parent expression
uses to refer to it.</li>
<li><strong>comments:</strong> a list of comments that are associated with a given expression. This is used in
order to preserve comments when transpiling SQL code.</li>
<li><strong>_type:</strong> the <code><a href="#DataType">sqlglot.expressions.DataType</a></code> type of an expression. This is inferred by the
optimizer, in order to enable some transformations that require type information.</li>
</ul>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="k">class</span> <span class="nc">Foo</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
<span class="gp">... </span> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</code></pre>
</div>
<p>The above definition informs us that Foo is an Expression that requires an argument called
"this" and may also optionally receive an argument called "expression".</p>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>args:</strong> a mapping used for retrieving the arguments of an expression, given their arg keys.</li>
</ul>
</div>
<div id="Expression.__init__" class="classattr">
<input id="Expression.__init__-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="name">Expression</span><span class="signature pdoc-code condensed">(<span class="param"><span class="o">**</span><span class="n">args</span><span class="p">:</span> <span class="n">Any</span></span>)</span>
<label class="view-source-button" for="Expression.__init__-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.__init__"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.__init__-89"><a href="#Expression.__init__-89"><span class="linenos">89</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">):</span>
</span><span id="Expression.__init__-90"><a href="#Expression.__init__-90"><span class="linenos">90</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">args</span>
</span><span id="Expression.__init__-91"><a href="#Expression.__init__-91"><span class="linenos">91</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression.__init__-92"><a href="#Expression.__init__-92"><span class="linenos">92</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression.__init__-93"><a href="#Expression.__init__-93"><span class="linenos">93</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression.__init__-94"><a href="#Expression.__init__-94"><span class="linenos">94</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">DataType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression.__init__-95"><a href="#Expression.__init__-95"><span class="linenos">95</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_meta</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression.__init__-96"><a href="#Expression.__init__-96"><span class="linenos">96</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_hash</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression.__init__-97"><a href="#Expression.__init__-97"><span class="linenos">97</span></a>
</span><span id="Expression.__init__-98"><a href="#Expression.__init__-98"><span class="linenos">98</span></a> <span class="k">for</span> <span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="Expression.__init__-99"><a href="#Expression.__init__-99"><span class="linenos">99</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span></pre></div>
</div>
<div id="Expression.this" class="classattr">
<div class="attr variable">
<span class="name">this</span>
</div>
<a class="headerlink" href="#Expression.this"></a>
<div class="docstring"><p>Retrieves the argument with key "this".</p>
</div>
</div>
<div id="Expression.expression" class="classattr">
<div class="attr variable">
<span class="name">expression</span>
</div>
<a class="headerlink" href="#Expression.expression"></a>
<div class="docstring"><p>Retrieves the argument with key "expression".</p>
</div>
</div>
<div id="Expression.expressions" class="classattr">
<div class="attr variable">
<span class="name">expressions</span>
</div>
<a class="headerlink" href="#Expression.expressions"></a>
<div class="docstring"><p>Retrieves the argument with key "expressions".</p>
</div>
</div>
<div id="Expression.text" class="classattr">
<input id="Expression.text-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">text</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">key</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
<label class="view-source-button" for="Expression.text-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.text"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.text-142"><a href="#Expression.text-142"><span class="linenos">142</span></a> <span class="k">def</span> <span class="nf">text</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Expression.text-143"><a href="#Expression.text-143"><span class="linenos">143</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.text-144"><a href="#Expression.text-144"><span class="linenos">144</span></a><span class="sd"> Returns a textual representation of the argument corresponding to &quot;key&quot;. This can only be used</span>
</span><span id="Expression.text-145"><a href="#Expression.text-145"><span class="linenos">145</span></a><span class="sd"> for args that are strings or leaf Expression instances, such as identifiers and literals.</span>
</span><span id="Expression.text-146"><a href="#Expression.text-146"><span class="linenos">146</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.text-147"><a href="#Expression.text-147"><span class="linenos">147</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</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="n">key</span><span class="p">)</span>
</span><span id="Expression.text-148"><a href="#Expression.text-148"><span class="linenos">148</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="Expression.text-149"><a href="#Expression.text-149"><span class="linenos">149</span></a> <span class="k">return</span> <span class="n">field</span>
</span><span id="Expression.text-150"><a href="#Expression.text-150"><span class="linenos">150</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Var</span><span class="p">)):</span>
</span><span id="Expression.text-151"><a href="#Expression.text-151"><span class="linenos">151</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">this</span>
</span><span id="Expression.text-152"><a href="#Expression.text-152"><span class="linenos">152</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="p">(</span><span class="n">Star</span><span class="p">,</span> <span class="n">Null</span><span class="p">)):</span>
</span><span id="Expression.text-153"><a href="#Expression.text-153"><span class="linenos">153</span></a> <span class="k">return</span> <span class="n">field</span><span class="o">.</span><span class="n">name</span>
</span><span id="Expression.text-154"><a href="#Expression.text-154"><span class="linenos">154</span></a> <span class="k">return</span> <span class="s2">&quot;&quot;</span>
</span></pre></div>
<div class="docstring"><p>Returns a textual representation of the argument corresponding to "key". This can only be used
for args that are strings or leaf Expression instances, such as identifiers and literals.</p>
</div>
</div>
<div id="Expression.is_string" class="classattr">
<div class="attr variable">
<span class="name">is_string</span><span class="annotation">: bool</span>
</div>
<a class="headerlink" href="#Expression.is_string"></a>
<div class="docstring"><p>Checks whether a Literal expression is a string.</p>
</div>
</div>
<div id="Expression.is_number" class="classattr">
<div class="attr variable">
<span class="name">is_number</span><span class="annotation">: bool</span>
</div>
<a class="headerlink" href="#Expression.is_number"></a>
<div class="docstring"><p>Checks whether a Literal expression is a number.</p>
</div>
</div>
<div id="Expression.is_int" class="classattr">
<div class="attr variable">
<span class="name">is_int</span><span class="annotation">: bool</span>
</div>
<a class="headerlink" href="#Expression.is_int"></a>
<div class="docstring"><p>Checks whether a Literal expression is an integer.</p>
</div>
</div>
<div id="Expression.is_star" class="classattr">
<div class="attr variable">
<span class="name">is_star</span><span class="annotation">: bool</span>
</div>
<a class="headerlink" href="#Expression.is_star"></a>
<div class="docstring"><p>Checks whether an expression is a star.</p>
</div>
</div>
<div id="Expression.alias" class="classattr">
<div class="attr variable">
<span class="name">alias</span><span class="annotation">: str</span>
</div>
<a class="headerlink" href="#Expression.alias"></a>
<div class="docstring"><p>Returns the alias of the expression, or an empty string if it's not aliased.</p>
</div>
</div>
<div id="Expression.output_name" class="classattr">
<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
</div>
<a class="headerlink" href="#Expression.output_name"></a>
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT a&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;a&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT b AS c&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;c&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT 1 + 2&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;&#39;</span>
</code></pre>
</div>
</blockquote>
</div>
</div>
<div id="Expression.copy" class="classattr">
<input id="Expression.copy-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">copy</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Expression.copy-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.copy"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.copy-252"><a href="#Expression.copy-252"><span class="linenos">252</span></a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression.copy-253"><a href="#Expression.copy-253"><span class="linenos">253</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.copy-254"><a href="#Expression.copy-254"><span class="linenos">254</span></a><span class="sd"> Returns a deep copy of the expression.</span>
</span><span id="Expression.copy-255"><a href="#Expression.copy-255"><span class="linenos">255</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.copy-256"><a href="#Expression.copy-256"><span class="linenos">256</span></a> <span class="n">new</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</span><span id="Expression.copy-257"><a href="#Expression.copy-257"><span class="linenos">257</span></a> <span class="n">new</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression.copy-258"><a href="#Expression.copy-258"><span class="linenos">258</span></a> <span class="k">return</span> <span class="n">new</span>
</span></pre></div>
<div class="docstring"><p>Returns a deep copy of the expression.</p>
</div>
</div>
<div id="Expression.add_comments" class="classattr">
<input id="Expression.add_comments-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">add_comments</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">comments</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
<label class="view-source-button" for="Expression.add_comments-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.add_comments"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.add_comments-260"><a href="#Expression.add_comments-260"><span class="linenos">260</span></a> <span class="k">def</span> <span class="nf">add_comments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression.add_comments-261"><a href="#Expression.add_comments-261"><span class="linenos">261</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression.add_comments-262"><a href="#Expression.add_comments-262"><span class="linenos">262</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="Expression.add_comments-263"><a href="#Expression.add_comments-263"><span class="linenos">263</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span>
</span><span id="Expression.add_comments-264"><a href="#Expression.add_comments-264"><span class="linenos">264</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">comments</span><span class="p">)</span>
</span></pre></div>
</div>
<div id="Expression.append" class="classattr">
<input id="Expression.append-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">append</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span>, </span><span class="param"><span class="n">value</span><span class="p">:</span> <span class="n">Any</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
<label class="view-source-button" for="Expression.append-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.append"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.append-266"><a href="#Expression.append-266"><span class="linenos">266</span></a> <span class="k">def</span> <span class="nf">append</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression.append-267"><a href="#Expression.append-267"><span class="linenos">267</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.append-268"><a href="#Expression.append-268"><span class="linenos">268</span></a><span class="sd"> Appends value to arg_key if it&#39;s a list or sets it as a new list.</span>
</span><span id="Expression.append-269"><a href="#Expression.append-269"><span class="linenos">269</span></a>
</span><span id="Expression.append-270"><a href="#Expression.append-270"><span class="linenos">270</span></a><span class="sd"> Args:</span>
</span><span id="Expression.append-271"><a href="#Expression.append-271"><span class="linenos">271</span></a><span class="sd"> arg_key (str): name of the list expression arg</span>
</span><span id="Expression.append-272"><a href="#Expression.append-272"><span class="linenos">272</span></a><span class="sd"> value (Any): value to append to the list</span>
</span><span id="Expression.append-273"><a href="#Expression.append-273"><span class="linenos">273</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.append-274"><a href="#Expression.append-274"><span class="linenos">274</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</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="n">arg_key</span><span class="p">),</span> <span class="nb">list</span><span class="p">):</span>
</span><span id="Expression.append-275"><a href="#Expression.append-275"><span class="linenos">275</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="Expression.append-276"><a href="#Expression.append-276"><span class="linenos">276</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
</span><span id="Expression.append-277"><a href="#Expression.append-277"><span class="linenos">277</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Appends value to arg_key if it's a list or sets it as a new list.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>arg_key (str):</strong> name of the list expression arg</li>
<li><strong>value (Any):</strong> value to append to the list</li>
</ul>
</div>
</div>
<div id="Expression.set" class="classattr">
<input id="Expression.set-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">set</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span>, </span><span class="param"><span class="n">value</span><span class="p">:</span> <span class="n">Any</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
<label class="view-source-button" for="Expression.set-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.set"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.set-279"><a href="#Expression.set-279"><span class="linenos">279</span></a> <span class="k">def</span> <span class="nf">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">arg_key</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="Expression.set-280"><a href="#Expression.set-280"><span class="linenos">280</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.set-281"><a href="#Expression.set-281"><span class="linenos">281</span></a><span class="sd"> Sets `arg_key` to `value`.</span>
</span><span id="Expression.set-282"><a href="#Expression.set-282"><span class="linenos">282</span></a>
</span><span id="Expression.set-283"><a href="#Expression.set-283"><span class="linenos">283</span></a><span class="sd"> Args:</span>
</span><span id="Expression.set-284"><a href="#Expression.set-284"><span class="linenos">284</span></a><span class="sd"> arg_key (str): name of the expression arg.</span>
</span><span id="Expression.set-285"><a href="#Expression.set-285"><span class="linenos">285</span></a><span class="sd"> value: value to set the arg to.</span>
</span><span id="Expression.set-286"><a href="#Expression.set-286"><span class="linenos">286</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.set-287"><a href="#Expression.set-287"><span class="linenos">287</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">arg_key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
</span><span id="Expression.set-288"><a href="#Expression.set-288"><span class="linenos">288</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_set_parent</span><span class="p">(</span><span class="n">arg_key</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Sets <code>arg_key</code> to <code>value</code>.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>arg_key (str):</strong> name of the expression arg.</li>
<li><strong>value:</strong> value to set the arg to.</li>
</ul>
</div>
</div>
<div id="Expression.depth" class="classattr">
<div class="attr variable">
<span class="name">depth</span><span class="annotation">: int</span>
</div>
<a class="headerlink" href="#Expression.depth"></a>
<div class="docstring"><p>Returns the depth of this tree.</p>
</div>
</div>
<div id="Expression.iter_expressions" class="classattr">
<input id="Expression.iter_expressions-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">iter_expressions</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">) -> <span class="n">Iterator</span><span class="p">[</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]</span>:</span></span>
<label class="view-source-button" for="Expression.iter_expressions-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.iter_expressions"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.iter_expressions-309"><a href="#Expression.iter_expressions-309"><span class="linenos">309</span></a> <span class="k">def</span> <span class="nf">iter_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]]:</span>
</span><span id="Expression.iter_expressions-310"><a href="#Expression.iter_expressions-310"><span class="linenos">310</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Yields the key and expression for all arguments, exploding list args.&quot;&quot;&quot;</span>
</span><span id="Expression.iter_expressions-311"><a href="#Expression.iter_expressions-311"><span class="linenos">311</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="Expression.iter_expressions-312"><a href="#Expression.iter_expressions-312"><span class="linenos">312</span></a> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">vs</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span><span class="p">:</span>
</span><span id="Expression.iter_expressions-313"><a href="#Expression.iter_expressions-313"><span class="linenos">313</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">vs</span><span class="p">:</span>
</span><span id="Expression.iter_expressions-314"><a href="#Expression.iter_expressions-314"><span class="linenos">314</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
</span><span id="Expression.iter_expressions-315"><a href="#Expression.iter_expressions-315"><span class="linenos">315</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span>
</span><span id="Expression.iter_expressions-316"><a href="#Expression.iter_expressions-316"><span class="linenos">316</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="Expression.iter_expressions-317"><a href="#Expression.iter_expressions-317"><span class="linenos">317</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">vs</span><span class="p">,</span> <span class="s2">&quot;parent&quot;</span><span class="p">):</span>
</span><span id="Expression.iter_expressions-318"><a href="#Expression.iter_expressions-318"><span class="linenos">318</span></a> <span class="k">yield</span> <span class="n">k</span><span class="p">,</span> <span class="n">vs</span>
</span></pre></div>
<div class="docstring"><p>Yields the key and expression for all arguments, exploding list args.</p>
</div>
</div>
<div id="Expression.find" class="classattr">
<input id="Expression.find-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">find</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">Type</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span>, </span><span class="param"><span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="n">Optional</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span>:</span></span>
<label class="view-source-button" for="Expression.find-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.find"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find-320"><a href="#Expression.find-320"><span class="linenos">320</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
</span><span id="Expression.find-321"><a href="#Expression.find-321"><span class="linenos">321</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.find-322"><a href="#Expression.find-322"><span class="linenos">322</span></a><span class="sd"> Returns the first node in this tree which matches at least one of</span>
</span><span id="Expression.find-323"><a href="#Expression.find-323"><span class="linenos">323</span></a><span class="sd"> the specified types.</span>
</span><span id="Expression.find-324"><a href="#Expression.find-324"><span class="linenos">324</span></a>
</span><span id="Expression.find-325"><a href="#Expression.find-325"><span class="linenos">325</span></a><span class="sd"> Args:</span>
</span><span id="Expression.find-326"><a href="#Expression.find-326"><span class="linenos">326</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
</span><span id="Expression.find-327"><a href="#Expression.find-327"><span class="linenos">327</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
</span><span id="Expression.find-328"><a href="#Expression.find-328"><span class="linenos">328</span></a>
</span><span id="Expression.find-329"><a href="#Expression.find-329"><span class="linenos">329</span></a><span class="sd"> Returns:</span>
</span><span id="Expression.find-330"><a href="#Expression.find-330"><span class="linenos">330</span></a><span class="sd"> The node which matches the criteria or None if no such node was found.</span>
</span><span id="Expression.find-331"><a href="#Expression.find-331"><span class="linenos">331</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.find-332"><a href="#Expression.find-332"><span class="linenos">332</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Returns the first node in this tree which matches at least one of
the specified types.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression_types:</strong> the expression type(s) to match.</li>
<li><strong>bfs:</strong> whether to search the AST using the BFS algorithm (DFS is used if false).</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The node which matches the criteria or None if no such node was found.</p>
</blockquote>
</div>
</div>
<div id="Expression.find_all" class="classattr">
<input id="Expression.find_all-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">find_all</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">Type</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span>, </span><span class="param"><span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="n">Iterator</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span>:</span></span>
<label class="view-source-button" for="Expression.find_all-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.find_all"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find_all-334"><a href="#Expression.find_all-334"><span class="linenos">334</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">bfs</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterator</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
</span><span id="Expression.find_all-335"><a href="#Expression.find_all-335"><span class="linenos">335</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.find_all-336"><a href="#Expression.find_all-336"><span class="linenos">336</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree and only</span>
</span><span id="Expression.find_all-337"><a href="#Expression.find_all-337"><span class="linenos">337</span></a><span class="sd"> yields those that match at least one of the specified expression types.</span>
</span><span id="Expression.find_all-338"><a href="#Expression.find_all-338"><span class="linenos">338</span></a>
</span><span id="Expression.find_all-339"><a href="#Expression.find_all-339"><span class="linenos">339</span></a><span class="sd"> Args:</span>
</span><span id="Expression.find_all-340"><a href="#Expression.find_all-340"><span class="linenos">340</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
</span><span id="Expression.find_all-341"><a href="#Expression.find_all-341"><span class="linenos">341</span></a><span class="sd"> bfs: whether to search the AST using the BFS algorithm (DFS is used if false).</span>
</span><span id="Expression.find_all-342"><a href="#Expression.find_all-342"><span class="linenos">342</span></a>
</span><span id="Expression.find_all-343"><a href="#Expression.find_all-343"><span class="linenos">343</span></a><span class="sd"> Returns:</span>
</span><span id="Expression.find_all-344"><a href="#Expression.find_all-344"><span class="linenos">344</span></a><span class="sd"> The generator object.</span>
</span><span id="Expression.find_all-345"><a href="#Expression.find_all-345"><span class="linenos">345</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.find_all-346"><a href="#Expression.find_all-346"><span class="linenos">346</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span>
</span><span id="Expression.find_all-347"><a href="#Expression.find_all-347"><span class="linenos">347</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
</span><span id="Expression.find_all-348"><a href="#Expression.find_all-348"><span class="linenos">348</span></a> <span class="k">yield</span> <span class="n">expression</span>
</span></pre></div>
<div class="docstring"><p>Returns a generator object which visits all nodes in this tree and only
yields those that match at least one of the specified expression types.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression_types:</strong> the expression type(s) to match.</li>
<li><strong>bfs:</strong> whether to search the AST using the BFS algorithm (DFS is used if false).</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The generator object.</p>
</blockquote>
</div>
</div>
<div id="Expression.find_ancestor" class="classattr">
<input id="Expression.find_ancestor-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">find_ancestor</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">Type</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n">Optional</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span>:</span></span>
<label class="view-source-button" for="Expression.find_ancestor-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.find_ancestor"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.find_ancestor-350"><a href="#Expression.find_ancestor-350"><span class="linenos">350</span></a> <span class="k">def</span> <span class="nf">find_ancestor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">E</span><span class="p">]:</span>
</span><span id="Expression.find_ancestor-351"><a href="#Expression.find_ancestor-351"><span class="linenos">351</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.find_ancestor-352"><a href="#Expression.find_ancestor-352"><span class="linenos">352</span></a><span class="sd"> Returns a nearest parent matching expression_types.</span>
</span><span id="Expression.find_ancestor-353"><a href="#Expression.find_ancestor-353"><span class="linenos">353</span></a>
</span><span id="Expression.find_ancestor-354"><a href="#Expression.find_ancestor-354"><span class="linenos">354</span></a><span class="sd"> Args:</span>
</span><span id="Expression.find_ancestor-355"><a href="#Expression.find_ancestor-355"><span class="linenos">355</span></a><span class="sd"> expression_types: the expression type(s) to match.</span>
</span><span id="Expression.find_ancestor-356"><a href="#Expression.find_ancestor-356"><span class="linenos">356</span></a>
</span><span id="Expression.find_ancestor-357"><a href="#Expression.find_ancestor-357"><span class="linenos">357</span></a><span class="sd"> Returns:</span>
</span><span id="Expression.find_ancestor-358"><a href="#Expression.find_ancestor-358"><span class="linenos">358</span></a><span class="sd"> The parent node.</span>
</span><span id="Expression.find_ancestor-359"><a href="#Expression.find_ancestor-359"><span class="linenos">359</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.find_ancestor-360"><a href="#Expression.find_ancestor-360"><span class="linenos">360</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression.find_ancestor-361"><a href="#Expression.find_ancestor-361"><span class="linenos">361</span></a> <span class="k">while</span> <span class="n">ancestor</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span>
</span><span id="Expression.find_ancestor-362"><a href="#Expression.find_ancestor-362"><span class="linenos">362</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">ancestor</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression.find_ancestor-363"><a href="#Expression.find_ancestor-363"><span class="linenos">363</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">E</span><span class="p">,</span> <span class="n">ancestor</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Returns a nearest parent matching expression_types.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression_types:</strong> the expression type(s) to match.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The parent node.</p>
</blockquote>
</div>
</div>
<div id="Expression.parent_select" class="classattr">
<div class="attr variable">
<span class="name">parent_select</span><span class="annotation">: Optional[<a href="#Select">sqlglot.expressions.Select</a>]</span>
</div>
<a class="headerlink" href="#Expression.parent_select"></a>
<div class="docstring"><p>Returns the parent select statement.</p>
</div>
</div>
<div id="Expression.same_parent" class="classattr">
<div class="attr variable">
<span class="name">same_parent</span><span class="annotation">: bool</span>
</div>
<a class="headerlink" href="#Expression.same_parent"></a>
<div class="docstring"><p>Returns if the parent is the same class as itself.</p>
</div>
</div>
<div id="Expression.root" class="classattr">
<input id="Expression.root-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">root</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span>
<label class="view-source-button" for="Expression.root-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.root"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.root-377"><a href="#Expression.root-377"><span class="linenos">377</span></a> <span class="k">def</span> <span class="nf">root</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="Expression.root-378"><a href="#Expression.root-378"><span class="linenos">378</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.root-379"><a href="#Expression.root-379"><span class="linenos">379</span></a><span class="sd"> Returns the root expression of this tree.</span>
</span><span id="Expression.root-380"><a href="#Expression.root-380"><span class="linenos">380</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.root-381"><a href="#Expression.root-381"><span class="linenos">381</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
</span><span id="Expression.root-382"><a href="#Expression.root-382"><span class="linenos">382</span></a> <span class="k">while</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
</span><span id="Expression.root-383"><a href="#Expression.root-383"><span class="linenos">383</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression.root-384"><a href="#Expression.root-384"><span class="linenos">384</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
<div class="docstring"><p>Returns the root expression of this tree.</p>
</div>
</div>
<div id="Expression.walk" class="classattr">
<input id="Expression.walk-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">walk</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">bfs</span><span class="o">=</span><span class="kc">True</span>, </span><span class="param"><span class="n">prune</span><span class="o">=</span><span class="kc">None</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Expression.walk-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.walk"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.walk-386"><a href="#Expression.walk-386"><span class="linenos">386</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="Expression.walk-387"><a href="#Expression.walk-387"><span class="linenos">387</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.walk-388"><a href="#Expression.walk-388"><span class="linenos">388</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree.</span>
</span><span id="Expression.walk-389"><a href="#Expression.walk-389"><span class="linenos">389</span></a>
</span><span id="Expression.walk-390"><a href="#Expression.walk-390"><span class="linenos">390</span></a><span class="sd"> Args:</span>
</span><span id="Expression.walk-391"><a href="#Expression.walk-391"><span class="linenos">391</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span>
</span><span id="Expression.walk-392"><a href="#Expression.walk-392"><span class="linenos">392</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span>
</span><span id="Expression.walk-393"><a href="#Expression.walk-393"><span class="linenos">393</span></a><span class="sd"> prune ((node, parent, arg_key) -&gt; bool): callable that returns True if</span>
</span><span id="Expression.walk-394"><a href="#Expression.walk-394"><span class="linenos">394</span></a><span class="sd"> the generator should stop traversing this branch of the tree.</span>
</span><span id="Expression.walk-395"><a href="#Expression.walk-395"><span class="linenos">395</span></a>
</span><span id="Expression.walk-396"><a href="#Expression.walk-396"><span class="linenos">396</span></a><span class="sd"> Returns:</span>
</span><span id="Expression.walk-397"><a href="#Expression.walk-397"><span class="linenos">397</span></a><span class="sd"> the generator object.</span>
</span><span id="Expression.walk-398"><a href="#Expression.walk-398"><span class="linenos">398</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.walk-399"><a href="#Expression.walk-399"><span class="linenos">399</span></a> <span class="k">if</span> <span class="n">bfs</span><span class="p">:</span>
</span><span id="Expression.walk-400"><a href="#Expression.walk-400"><span class="linenos">400</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">bfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
</span><span id="Expression.walk-401"><a href="#Expression.walk-401"><span class="linenos">401</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="Expression.walk-402"><a href="#Expression.walk-402"><span class="linenos">402</span></a> <span class="k">yield from</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="n">prune</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Returns a generator object which visits all nodes in this tree.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>bfs (bool):</strong> if set to True the BFS traversal order will be applied,
otherwise the DFS traversal will be used instead.</li>
<li><strong>prune ((node, parent, arg_key) -> bool):</strong> callable that returns True if
the generator should stop traversing this branch of the tree.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>the generator object.</p>
</blockquote>
</div>
</div>
<div id="Expression.dfs" class="classattr">
<input id="Expression.dfs-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">dfs</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">parent</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="n">key</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="n">prune</span><span class="o">=</span><span class="kc">None</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Expression.dfs-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.dfs"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.dfs-404"><a href="#Expression.dfs-404"><span class="linenos">404</span></a> <span class="k">def</span> <span class="nf">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="Expression.dfs-405"><a href="#Expression.dfs-405"><span class="linenos">405</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.dfs-406"><a href="#Expression.dfs-406"><span class="linenos">406</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
</span><span id="Expression.dfs-407"><a href="#Expression.dfs-407"><span class="linenos">407</span></a><span class="sd"> the DFS (Depth-first) order.</span>
</span><span id="Expression.dfs-408"><a href="#Expression.dfs-408"><span class="linenos">408</span></a>
</span><span id="Expression.dfs-409"><a href="#Expression.dfs-409"><span class="linenos">409</span></a><span class="sd"> Returns:</span>
</span><span id="Expression.dfs-410"><a href="#Expression.dfs-410"><span class="linenos">410</span></a><span class="sd"> The generator object.</span>
</span><span id="Expression.dfs-411"><a href="#Expression.dfs-411"><span class="linenos">411</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.dfs-412"><a href="#Expression.dfs-412"><span class="linenos">412</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression.dfs-413"><a href="#Expression.dfs-413"><span class="linenos">413</span></a> <span class="k">yield</span> <span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
</span><span id="Expression.dfs-414"><a href="#Expression.dfs-414"><span class="linenos">414</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
</span><span id="Expression.dfs-415"><a href="#Expression.dfs-415"><span class="linenos">415</span></a> <span class="k">return</span>
</span><span id="Expression.dfs-416"><a href="#Expression.dfs-416"><span class="linenos">416</span></a>
</span><span id="Expression.dfs-417"><a href="#Expression.dfs-417"><span class="linenos">417</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
</span><span id="Expression.dfs-418"><a href="#Expression.dfs-418"><span class="linenos">418</span></a> <span class="k">yield from</span> <span class="n">v</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">prune</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Returns a generator object which visits all nodes in this tree in
the DFS (Depth-first) order.</p>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The generator object.</p>
</blockquote>
</div>
</div>
<div id="Expression.bfs" class="classattr">
<input id="Expression.bfs-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">bfs</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">prune</span><span class="o">=</span><span class="kc">None</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Expression.bfs-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.bfs"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.bfs-420"><a href="#Expression.bfs-420"><span class="linenos">420</span></a> <span class="k">def</span> <span class="nf">bfs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
</span><span id="Expression.bfs-421"><a href="#Expression.bfs-421"><span class="linenos">421</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.bfs-422"><a href="#Expression.bfs-422"><span class="linenos">422</span></a><span class="sd"> Returns a generator object which visits all nodes in this tree in</span>
</span><span id="Expression.bfs-423"><a href="#Expression.bfs-423"><span class="linenos">423</span></a><span class="sd"> the BFS (Breadth-first) order.</span>
</span><span id="Expression.bfs-424"><a href="#Expression.bfs-424"><span class="linenos">424</span></a>
</span><span id="Expression.bfs-425"><a href="#Expression.bfs-425"><span class="linenos">425</span></a><span class="sd"> Returns:</span>
</span><span id="Expression.bfs-426"><a href="#Expression.bfs-426"><span class="linenos">426</span></a><span class="sd"> The generator object.</span>
</span><span id="Expression.bfs-427"><a href="#Expression.bfs-427"><span class="linenos">427</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.bfs-428"><a href="#Expression.bfs-428"><span class="linenos">428</span></a> <span class="n">queue</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="kc">None</span><span class="p">)])</span>
</span><span id="Expression.bfs-429"><a href="#Expression.bfs-429"><span class="linenos">429</span></a>
</span><span id="Expression.bfs-430"><a href="#Expression.bfs-430"><span class="linenos">430</span></a> <span class="k">while</span> <span class="n">queue</span><span class="p">:</span>
</span><span id="Expression.bfs-431"><a href="#Expression.bfs-431"><span class="linenos">431</span></a> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="o">=</span> <span class="n">queue</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
</span><span id="Expression.bfs-432"><a href="#Expression.bfs-432"><span class="linenos">432</span></a>
</span><span id="Expression.bfs-433"><a href="#Expression.bfs-433"><span class="linenos">433</span></a> <span class="k">yield</span> <span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span>
</span><span id="Expression.bfs-434"><a href="#Expression.bfs-434"><span class="linenos">434</span></a> <span class="k">if</span> <span class="n">prune</span> <span class="ow">and</span> <span class="n">prune</span><span class="p">(</span><span class="n">item</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
</span><span id="Expression.bfs-435"><a href="#Expression.bfs-435"><span class="linenos">435</span></a> <span class="k">continue</span>
</span><span id="Expression.bfs-436"><a href="#Expression.bfs-436"><span class="linenos">436</span></a>
</span><span id="Expression.bfs-437"><a href="#Expression.bfs-437"><span class="linenos">437</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">item</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">():</span>
</span><span id="Expression.bfs-438"><a href="#Expression.bfs-438"><span class="linenos">438</span></a> <span class="n">queue</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">v</span><span class="p">,</span> <span class="n">item</span><span class="p">,</span> <span class="n">k</span><span class="p">))</span>
</span></pre></div>
<div class="docstring"><p>Returns a generator object which visits all nodes in this tree in
the BFS (Breadth-first) order.</p>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The generator object.</p>
</blockquote>
</div>
</div>
<div id="Expression.unnest" class="classattr">
<input id="Expression.unnest-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">unnest</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Expression.unnest-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.unnest"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unnest-440"><a href="#Expression.unnest-440"><span class="linenos">440</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression.unnest-441"><a href="#Expression.unnest-441"><span class="linenos">441</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.unnest-442"><a href="#Expression.unnest-442"><span class="linenos">442</span></a><span class="sd"> Returns the first non parenthesis child or self.</span>
</span><span id="Expression.unnest-443"><a href="#Expression.unnest-443"><span class="linenos">443</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.unnest-444"><a href="#Expression.unnest-444"><span class="linenos">444</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
</span><span id="Expression.unnest-445"><a href="#Expression.unnest-445"><span class="linenos">445</span></a> <span class="k">while</span> <span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="ow">is</span> <span class="n">Paren</span><span class="p">:</span>
</span><span id="Expression.unnest-446"><a href="#Expression.unnest-446"><span class="linenos">446</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
</span><span id="Expression.unnest-447"><a href="#Expression.unnest-447"><span class="linenos">447</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
<div class="docstring"><p>Returns the first non parenthesis child or self.</p>
</div>
</div>
<div id="Expression.unalias" class="classattr">
<input id="Expression.unalias-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">unalias</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Expression.unalias-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.unalias"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unalias-449"><a href="#Expression.unalias-449"><span class="linenos">449</span></a> <span class="k">def</span> <span class="nf">unalias</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression.unalias-450"><a href="#Expression.unalias-450"><span class="linenos">450</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.unalias-451"><a href="#Expression.unalias-451"><span class="linenos">451</span></a><span class="sd"> Returns the inner expression if this is an Alias.</span>
</span><span id="Expression.unalias-452"><a href="#Expression.unalias-452"><span class="linenos">452</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.unalias-453"><a href="#Expression.unalias-453"><span class="linenos">453</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Alias</span><span class="p">):</span>
</span><span id="Expression.unalias-454"><a href="#Expression.unalias-454"><span class="linenos">454</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
</span><span id="Expression.unalias-455"><a href="#Expression.unalias-455"><span class="linenos">455</span></a> <span class="k">return</span> <span class="bp">self</span>
</span></pre></div>
<div class="docstring"><p>Returns the inner expression if this is an Alias.</p>
</div>
</div>
<div id="Expression.unnest_operands" class="classattr">
<input id="Expression.unnest_operands-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">unnest_operands</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Expression.unnest_operands-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.unnest_operands"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.unnest_operands-457"><a href="#Expression.unnest_operands-457"><span class="linenos">457</span></a> <span class="k">def</span> <span class="nf">unnest_operands</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression.unnest_operands-458"><a href="#Expression.unnest_operands-458"><span class="linenos">458</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.unnest_operands-459"><a href="#Expression.unnest_operands-459"><span class="linenos">459</span></a><span class="sd"> Returns unnested operands as a tuple.</span>
</span><span id="Expression.unnest_operands-460"><a href="#Expression.unnest_operands-460"><span class="linenos">460</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.unnest_operands-461"><a href="#Expression.unnest_operands-461"><span class="linenos">461</span></a> <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">arg</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">iter_expressions</span><span class="p">())</span>
</span></pre></div>
<div class="docstring"><p>Returns unnested operands as a tuple.</p>
</div>
</div>
<div id="Expression.flatten" class="classattr">
<input id="Expression.flatten-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">flatten</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">unnest</span><span class="o">=</span><span class="kc">True</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Expression.flatten-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.flatten"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.flatten-463"><a href="#Expression.flatten-463"><span class="linenos">463</span></a> <span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="Expression.flatten-464"><a href="#Expression.flatten-464"><span class="linenos">464</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.flatten-465"><a href="#Expression.flatten-465"><span class="linenos">465</span></a><span class="sd"> Returns a generator which yields child nodes who&#39;s parents are the same class.</span>
</span><span id="Expression.flatten-466"><a href="#Expression.flatten-466"><span class="linenos">466</span></a>
</span><span id="Expression.flatten-467"><a href="#Expression.flatten-467"><span class="linenos">467</span></a><span class="sd"> A AND B AND C -&gt; [A, B, C]</span>
</span><span id="Expression.flatten-468"><a href="#Expression.flatten-468"><span class="linenos">468</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.flatten-469"><a href="#Expression.flatten-469"><span class="linenos">469</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">dfs</span><span class="p">(</span><span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="n">n</span><span class="p">,</span> <span class="n">p</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">p</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">):</span>
</span><span id="Expression.flatten-470"><a href="#Expression.flatten-470"><span class="linenos">470</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">type</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">:</span>
</span><span id="Expression.flatten-471"><a href="#Expression.flatten-471"><span class="linenos">471</span></a> <span class="k">yield</span> <span class="n">node</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span> <span class="k">if</span> <span class="n">unnest</span> <span class="k">else</span> <span class="n">node</span>
</span></pre></div>
<div class="docstring"><p>Returns a generator which yields child nodes who's parents are the same class.</p>
<p>A AND B AND C -> [A, B, C]</p>
</div>
</div>
<div id="Expression.sql" class="classattr">
<input id="Expression.sql-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">sql</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
<label class="view-source-button" for="Expression.sql-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.sql"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.sql-479"><a href="#Expression.sql-479"><span class="linenos">479</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Expression.sql-480"><a href="#Expression.sql-480"><span class="linenos">480</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.sql-481"><a href="#Expression.sql-481"><span class="linenos">481</span></a><span class="sd"> Returns SQL string representation of this tree.</span>
</span><span id="Expression.sql-482"><a href="#Expression.sql-482"><span class="linenos">482</span></a>
</span><span id="Expression.sql-483"><a href="#Expression.sql-483"><span class="linenos">483</span></a><span class="sd"> Args:</span>
</span><span id="Expression.sql-484"><a href="#Expression.sql-484"><span class="linenos">484</span></a><span class="sd"> dialect: the dialect of the output SQL string (eg. &quot;spark&quot;, &quot;hive&quot;, &quot;presto&quot;, &quot;mysql&quot;).</span>
</span><span id="Expression.sql-485"><a href="#Expression.sql-485"><span class="linenos">485</span></a><span class="sd"> opts: other `sqlglot.generator.Generator` options.</span>
</span><span id="Expression.sql-486"><a href="#Expression.sql-486"><span class="linenos">486</span></a>
</span><span id="Expression.sql-487"><a href="#Expression.sql-487"><span class="linenos">487</span></a><span class="sd"> Returns:</span>
</span><span id="Expression.sql-488"><a href="#Expression.sql-488"><span class="linenos">488</span></a><span class="sd"> The SQL string.</span>
</span><span id="Expression.sql-489"><a href="#Expression.sql-489"><span class="linenos">489</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.sql-490"><a href="#Expression.sql-490"><span class="linenos">490</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects</span> <span class="kn">import</span> <span class="n">Dialect</span>
</span><span id="Expression.sql-491"><a href="#Expression.sql-491"><span class="linenos">491</span></a>
</span><span id="Expression.sql-492"><a href="#Expression.sql-492"><span class="linenos">492</span></a> <span class="k">return</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Returns SQL string representation of this tree.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>dialect:</strong> the dialect of the output SQL string (eg. "spark", "hive", "presto", "mysql").</li>
<li><strong>opts:</strong> other <code><a href="generator.html#Generator">sqlglot.generator.Generator</a></code> options.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The SQL string.</p>
</blockquote>
</div>
</div>
<div id="Expression.transform" class="classattr">
<input id="Expression.transform-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">transform</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">fun</span>, </span><span class="param"><span class="o">*</span><span class="n">args</span>, </span><span class="param"><span class="n">copy</span><span class="o">=</span><span class="kc">True</span>, </span><span class="param"><span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Expression.transform-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.transform"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.transform-518"><a href="#Expression.transform-518"><span class="linenos">518</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
</span><span id="Expression.transform-519"><a href="#Expression.transform-519"><span class="linenos">519</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.transform-520"><a href="#Expression.transform-520"><span class="linenos">520</span></a><span class="sd"> Recursively visits all tree nodes (excluding already transformed ones)</span>
</span><span id="Expression.transform-521"><a href="#Expression.transform-521"><span class="linenos">521</span></a><span class="sd"> and applies the given transformation function to each node.</span>
</span><span id="Expression.transform-522"><a href="#Expression.transform-522"><span class="linenos">522</span></a>
</span><span id="Expression.transform-523"><a href="#Expression.transform-523"><span class="linenos">523</span></a><span class="sd"> Args:</span>
</span><span id="Expression.transform-524"><a href="#Expression.transform-524"><span class="linenos">524</span></a><span class="sd"> fun (function): a function which takes a node as an argument and returns a</span>
</span><span id="Expression.transform-525"><a href="#Expression.transform-525"><span class="linenos">525</span></a><span class="sd"> new transformed node or the same node without modifications. If the function</span>
</span><span id="Expression.transform-526"><a href="#Expression.transform-526"><span class="linenos">526</span></a><span class="sd"> returns None, then the corresponding node will be removed from the syntax tree.</span>
</span><span id="Expression.transform-527"><a href="#Expression.transform-527"><span class="linenos">527</span></a><span class="sd"> copy (bool): if set to True a new tree instance is constructed, otherwise the tree is</span>
</span><span id="Expression.transform-528"><a href="#Expression.transform-528"><span class="linenos">528</span></a><span class="sd"> modified in place.</span>
</span><span id="Expression.transform-529"><a href="#Expression.transform-529"><span class="linenos">529</span></a>
</span><span id="Expression.transform-530"><a href="#Expression.transform-530"><span class="linenos">530</span></a><span class="sd"> Returns:</span>
</span><span id="Expression.transform-531"><a href="#Expression.transform-531"><span class="linenos">531</span></a><span class="sd"> The transformed tree.</span>
</span><span id="Expression.transform-532"><a href="#Expression.transform-532"><span class="linenos">532</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.transform-533"><a href="#Expression.transform-533"><span class="linenos">533</span></a> <span class="n">node</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
</span><span id="Expression.transform-534"><a href="#Expression.transform-534"><span class="linenos">534</span></a> <span class="n">new_node</span> <span class="o">=</span> <span class="n">fun</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="Expression.transform-535"><a href="#Expression.transform-535"><span class="linenos">535</span></a>
</span><span id="Expression.transform-536"><a href="#Expression.transform-536"><span class="linenos">536</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="Expression.transform-537"><a href="#Expression.transform-537"><span class="linenos">537</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span><span id="Expression.transform-538"><a href="#Expression.transform-538"><span class="linenos">538</span></a> <span class="k">if</span> <span class="n">new_node</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">node</span><span class="p">:</span>
</span><span id="Expression.transform-539"><a href="#Expression.transform-539"><span class="linenos">539</span></a> <span class="n">new_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression.transform-540"><a href="#Expression.transform-540"><span class="linenos">540</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span><span id="Expression.transform-541"><a href="#Expression.transform-541"><span class="linenos">541</span></a>
</span><span id="Expression.transform-542"><a href="#Expression.transform-542"><span class="linenos">542</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">new_node</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">child</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">))</span>
</span><span id="Expression.transform-543"><a href="#Expression.transform-543"><span class="linenos">543</span></a> <span class="k">return</span> <span class="n">new_node</span>
</span></pre></div>
<div class="docstring"><p>Recursively visits all tree nodes (excluding already transformed ones)
and applies the given transformation function to each node.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>fun (function):</strong> a function which takes a node as an argument and returns a
new transformed node or the same node without modifications. If the function
returns None, then the corresponding node will be removed from the syntax tree.</li>
<li><strong>copy (bool):</strong> if set to True a new tree instance is constructed, otherwise the tree is
modified in place.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The transformed tree.</p>
</blockquote>
</div>
</div>
<div id="Expression.replace" class="classattr">
<input id="Expression.replace-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">replace</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">expression</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Expression.replace-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.replace"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.replace-553"><a href="#Expression.replace-553"><span class="linenos">553</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">):</span>
</span><span id="Expression.replace-554"><a href="#Expression.replace-554"><span class="linenos">554</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.replace-555"><a href="#Expression.replace-555"><span class="linenos">555</span></a><span class="sd"> Swap out this expression with a new expression.</span>
</span><span id="Expression.replace-556"><a href="#Expression.replace-556"><span class="linenos">556</span></a>
</span><span id="Expression.replace-557"><a href="#Expression.replace-557"><span class="linenos">557</span></a><span class="sd"> For example::</span>
</span><span id="Expression.replace-558"><a href="#Expression.replace-558"><span class="linenos">558</span></a>
</span><span id="Expression.replace-559"><a href="#Expression.replace-559"><span class="linenos">559</span></a><span class="sd"> &gt;&gt;&gt; tree = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;)</span>
</span><span id="Expression.replace-560"><a href="#Expression.replace-560"><span class="linenos">560</span></a><span class="sd"> &gt;&gt;&gt; tree.find(Column).replace(Column(this=&quot;y&quot;))</span>
</span><span id="Expression.replace-561"><a href="#Expression.replace-561"><span class="linenos">561</span></a><span class="sd"> (COLUMN this: y)</span>
</span><span id="Expression.replace-562"><a href="#Expression.replace-562"><span class="linenos">562</span></a><span class="sd"> &gt;&gt;&gt; tree.sql()</span>
</span><span id="Expression.replace-563"><a href="#Expression.replace-563"><span class="linenos">563</span></a><span class="sd"> &#39;SELECT y FROM tbl&#39;</span>
</span><span id="Expression.replace-564"><a href="#Expression.replace-564"><span class="linenos">564</span></a>
</span><span id="Expression.replace-565"><a href="#Expression.replace-565"><span class="linenos">565</span></a><span class="sd"> Args:</span>
</span><span id="Expression.replace-566"><a href="#Expression.replace-566"><span class="linenos">566</span></a><span class="sd"> expression: new node</span>
</span><span id="Expression.replace-567"><a href="#Expression.replace-567"><span class="linenos">567</span></a>
</span><span id="Expression.replace-568"><a href="#Expression.replace-568"><span class="linenos">568</span></a><span class="sd"> Returns:</span>
</span><span id="Expression.replace-569"><a href="#Expression.replace-569"><span class="linenos">569</span></a><span class="sd"> The new expression or expressions.</span>
</span><span id="Expression.replace-570"><a href="#Expression.replace-570"><span class="linenos">570</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.replace-571"><a href="#Expression.replace-571"><span class="linenos">571</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span><span class="p">:</span>
</span><span id="Expression.replace-572"><a href="#Expression.replace-572"><span class="linenos">572</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="Expression.replace-573"><a href="#Expression.replace-573"><span class="linenos">573</span></a>
</span><span id="Expression.replace-574"><a href="#Expression.replace-574"><span class="linenos">574</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Expression.replace-575"><a href="#Expression.replace-575"><span class="linenos">575</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Expression.replace-576"><a href="#Expression.replace-576"><span class="linenos">576</span></a>
</span><span id="Expression.replace-577"><a href="#Expression.replace-577"><span class="linenos">577</span></a> <span class="n">replace_children</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="k">lambda</span> <span class="n">child</span><span class="p">:</span> <span class="n">expression</span> <span class="k">if</span> <span class="n">child</span> <span class="ow">is</span> <span class="bp">self</span> <span class="k">else</span> <span class="n">child</span><span class="p">)</span>
</span><span id="Expression.replace-578"><a href="#Expression.replace-578"><span class="linenos">578</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
<div class="docstring"><p>Swap out this expression with a new expression.</p>
<p>For example::</p>
<pre><code>&gt;&gt;&gt; tree = Select().select("x").from_("tbl")
&gt;&gt;&gt; tree.find(Column).replace(Column(this="y"))
(COLUMN this: y)
&gt;&gt;&gt; tree.sql()
'SELECT y FROM tbl'
</code></pre>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> new node</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new expression or expressions.</p>
</blockquote>
</div>
</div>
<div id="Expression.pop" class="classattr">
<input id="Expression.pop-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">pop</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span><span class="p">:</span> <span class="o">~</span><span class="n">E</span></span><span class="return-annotation">) -> <span class="o">~</span><span class="n">E</span>:</span></span>
<label class="view-source-button" for="Expression.pop-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.pop"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.pop-580"><a href="#Expression.pop-580"><span class="linenos">580</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">E</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="Expression.pop-581"><a href="#Expression.pop-581"><span class="linenos">581</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.pop-582"><a href="#Expression.pop-582"><span class="linenos">582</span></a><span class="sd"> Remove this expression from its AST.</span>
</span><span id="Expression.pop-583"><a href="#Expression.pop-583"><span class="linenos">583</span></a>
</span><span id="Expression.pop-584"><a href="#Expression.pop-584"><span class="linenos">584</span></a><span class="sd"> Returns:</span>
</span><span id="Expression.pop-585"><a href="#Expression.pop-585"><span class="linenos">585</span></a><span class="sd"> The popped expression.</span>
</span><span id="Expression.pop-586"><a href="#Expression.pop-586"><span class="linenos">586</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.pop-587"><a href="#Expression.pop-587"><span class="linenos">587</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span>
</span><span id="Expression.pop-588"><a href="#Expression.pop-588"><span class="linenos">588</span></a> <span class="k">return</span> <span class="bp">self</span>
</span></pre></div>
<div class="docstring"><p>Remove this expression from its AST.</p>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The popped expression.</p>
</blockquote>
</div>
</div>
<div id="Expression.assert_is" class="classattr">
<input id="Expression.assert_is-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">assert_is</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">type_</span><span class="p">:</span> <span class="n">Type</span><span class="p">[</span><span class="o">~</span><span class="n">E</span><span class="p">]</span></span><span class="return-annotation">) -> <span class="o">~</span><span class="n">E</span>:</span></span>
<label class="view-source-button" for="Expression.assert_is-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.assert_is"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.assert_is-590"><a href="#Expression.assert_is-590"><span class="linenos">590</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="Expression.assert_is-591"><a href="#Expression.assert_is-591"><span class="linenos">591</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.assert_is-592"><a href="#Expression.assert_is-592"><span class="linenos">592</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span>
</span><span id="Expression.assert_is-593"><a href="#Expression.assert_is-593"><span class="linenos">593</span></a>
</span><span id="Expression.assert_is-594"><a href="#Expression.assert_is-594"><span class="linenos">594</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span>
</span><span id="Expression.assert_is-595"><a href="#Expression.assert_is-595"><span class="linenos">595</span></a><span class="sd"> Otherwise, this returns this expression.</span>
</span><span id="Expression.assert_is-596"><a href="#Expression.assert_is-596"><span class="linenos">596</span></a>
</span><span id="Expression.assert_is-597"><a href="#Expression.assert_is-597"><span class="linenos">597</span></a><span class="sd"> Examples:</span>
</span><span id="Expression.assert_is-598"><a href="#Expression.assert_is-598"><span class="linenos">598</span></a><span class="sd"> This is useful for type security in chained expressions:</span>
</span><span id="Expression.assert_is-599"><a href="#Expression.assert_is-599"><span class="linenos">599</span></a>
</span><span id="Expression.assert_is-600"><a href="#Expression.assert_is-600"><span class="linenos">600</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="Expression.assert_is-601"><a href="#Expression.assert_is-601"><span class="linenos">601</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT x from y&quot;).assert_is(Select).select(&quot;z&quot;).sql()</span>
</span><span id="Expression.assert_is-602"><a href="#Expression.assert_is-602"><span class="linenos">602</span></a><span class="sd"> &#39;SELECT x, z FROM y&#39;</span>
</span><span id="Expression.assert_is-603"><a href="#Expression.assert_is-603"><span class="linenos">603</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.assert_is-604"><a href="#Expression.assert_is-604"><span class="linenos">604</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span>
</span><span id="Expression.assert_is-605"><a href="#Expression.assert_is-605"><span class="linenos">605</span></a> <span class="k">return</span> <span class="bp">self</span>
</span></pre></div>
<div class="docstring"><p>Assert that this <code><a href="#Expression">Expression</a></code> is an instance of <code>type_</code>.</p>
<p>If it is NOT an instance of <code>type_</code>, this raises an assertion error.
Otherwise, this returns this expression.</p>
<h6 id="examples">Examples:</h6>
<blockquote>
<p>This is useful for type security in chained expressions:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">sqlglot</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n"><a href="../sqlglot.html#parse_one">sqlglot.parse_one</a></span><span class="p">(</span><span class="s2">&quot;SELECT x from y&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">assert_is</span><span class="p">(</span><span class="n">Select</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;z&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT x, z FROM y&#39;</span>
</code></pre>
</div>
</blockquote>
</div>
</div>
<div id="Expression.error_messages" class="classattr">
<input id="Expression.error_messages-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">error_messages</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">args</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span>:</span></span>
<label class="view-source-button" for="Expression.error_messages-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.error_messages"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.error_messages-607"><a href="#Expression.error_messages-607"><span class="linenos">607</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="Expression.error_messages-608"><a href="#Expression.error_messages-608"><span class="linenos">608</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.error_messages-609"><a href="#Expression.error_messages-609"><span class="linenos">609</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span>
</span><span id="Expression.error_messages-610"><a href="#Expression.error_messages-610"><span class="linenos">610</span></a>
</span><span id="Expression.error_messages-611"><a href="#Expression.error_messages-611"><span class="linenos">611</span></a><span class="sd"> Args:</span>
</span><span id="Expression.error_messages-612"><a href="#Expression.error_messages-612"><span class="linenos">612</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span>
</span><span id="Expression.error_messages-613"><a href="#Expression.error_messages-613"><span class="linenos">613</span></a><span class="sd"> to check that the provided arguments don&#39;t exceed the function argument limit.</span>
</span><span id="Expression.error_messages-614"><a href="#Expression.error_messages-614"><span class="linenos">614</span></a>
</span><span id="Expression.error_messages-615"><a href="#Expression.error_messages-615"><span class="linenos">615</span></a><span class="sd"> Returns:</span>
</span><span id="Expression.error_messages-616"><a href="#Expression.error_messages-616"><span class="linenos">616</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span>
</span><span id="Expression.error_messages-617"><a href="#Expression.error_messages-617"><span class="linenos">617</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.error_messages-618"><a href="#Expression.error_messages-618"><span class="linenos">618</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="Expression.error_messages-619"><a href="#Expression.error_messages-619"><span class="linenos">619</span></a>
</span><span id="Expression.error_messages-620"><a href="#Expression.error_messages-620"><span class="linenos">620</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span>
</span><span id="Expression.error_messages-621"><a href="#Expression.error_messages-621"><span class="linenos">621</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span>
</span><span id="Expression.error_messages-622"><a href="#Expression.error_messages-622"><span class="linenos">622</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unexpected keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="Expression.error_messages-623"><a href="#Expression.error_messages-623"><span class="linenos">623</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="Expression.error_messages-624"><a href="#Expression.error_messages-624"><span class="linenos">624</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</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="n">k</span><span class="p">)</span>
</span><span id="Expression.error_messages-625"><a href="#Expression.error_messages-625"><span class="linenos">625</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span>
</span><span id="Expression.error_messages-626"><a href="#Expression.error_messages-626"><span class="linenos">626</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Required keyword: &#39;</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">&#39; missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="Expression.error_messages-627"><a href="#Expression.error_messages-627"><span class="linenos">627</span></a>
</span><span id="Expression.error_messages-628"><a href="#Expression.error_messages-628"><span class="linenos">628</span></a> <span class="k">if</span> <span class="p">(</span>
</span><span id="Expression.error_messages-629"><a href="#Expression.error_messages-629"><span class="linenos">629</span></a> <span class="n">args</span>
</span><span id="Expression.error_messages-630"><a href="#Expression.error_messages-630"><span class="linenos">630</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span>
</span><span id="Expression.error_messages-631"><a href="#Expression.error_messages-631"><span class="linenos">631</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">&gt;</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
</span><span id="Expression.error_messages-632"><a href="#Expression.error_messages-632"><span class="linenos">632</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span>
</span><span id="Expression.error_messages-633"><a href="#Expression.error_messages-633"><span class="linenos">633</span></a> <span class="p">):</span>
</span><span id="Expression.error_messages-634"><a href="#Expression.error_messages-634"><span class="linenos">634</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
</span><span id="Expression.error_messages-635"><a href="#Expression.error_messages-635"><span class="linenos">635</span></a> <span class="sa">f</span><span class="s2">&quot;The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than &quot;</span>
</span><span id="Expression.error_messages-636"><a href="#Expression.error_messages-636"><span class="linenos">636</span></a> <span class="sa">f</span><span class="s2">&quot;the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)&quot;</span>
</span><span id="Expression.error_messages-637"><a href="#Expression.error_messages-637"><span class="linenos">637</span></a> <span class="p">)</span>
</span><span id="Expression.error_messages-638"><a href="#Expression.error_messages-638"><span class="linenos">638</span></a>
</span><span id="Expression.error_messages-639"><a href="#Expression.error_messages-639"><span class="linenos">639</span></a> <span class="k">return</span> <span class="n">errors</span>
</span></pre></div>
<div class="docstring"><p>Checks if this expression is valid (e.g. all mandatory args are set).</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>args:</strong> a sequence of values that were used to instantiate a Func expression. This is used
to check that the provided arguments don't exceed the function argument limit.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>A list of error messages for all possible errors that were found.</p>
</blockquote>
</div>
</div>
<div id="Expression.dump" class="classattr">
<input id="Expression.dump-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">dump</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Expression.dump-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.dump"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.dump-641"><a href="#Expression.dump-641"><span class="linenos">641</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Expression.dump-642"><a href="#Expression.dump-642"><span class="linenos">642</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.dump-643"><a href="#Expression.dump-643"><span class="linenos">643</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span>
</span><span id="Expression.dump-644"><a href="#Expression.dump-644"><span class="linenos">644</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.dump-645"><a href="#Expression.dump-645"><span class="linenos">645</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span>
</span><span id="Expression.dump-646"><a href="#Expression.dump-646"><span class="linenos">646</span></a>
</span><span id="Expression.dump-647"><a href="#Expression.dump-647"><span class="linenos">647</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Dump this Expression to a JSON-serializable dict.</p>
</div>
</div>
<div id="Expression.load" class="classattr">
<input id="Expression.load-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<div class="decorator">@classmethod</div>
<span class="def">def</span>
<span class="name">load</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">cls</span>, </span><span class="param"><span class="n">obj</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Expression.load-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Expression.load"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Expression.load-649"><a href="#Expression.load-649"><span class="linenos">649</span></a> <span class="nd">@classmethod</span>
</span><span id="Expression.load-650"><a href="#Expression.load-650"><span class="linenos">650</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span>
</span><span id="Expression.load-651"><a href="#Expression.load-651"><span class="linenos">651</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Expression.load-652"><a href="#Expression.load-652"><span class="linenos">652</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span>
</span><span id="Expression.load-653"><a href="#Expression.load-653"><span class="linenos">653</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Expression.load-654"><a href="#Expression.load-654"><span class="linenos">654</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span>
</span><span id="Expression.load-655"><a href="#Expression.load-655"><span class="linenos">655</span></a>
</span><span id="Expression.load-656"><a href="#Expression.load-656"><span class="linenos">656</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Load a dict (as returned by <code><a href="#Expression.dump">Expression.dump</a></code>) into an Expression instance.</p>
</div>
</div>
</section>
<section id="Condition">
<input id="Condition-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Condition</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Condition-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Condition-667"><a href="#Condition-667"><span class="linenos">667</span></a><span class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Condition-668"><a href="#Condition-668"><span class="linenos">668</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
</span><span id="Condition-669"><a href="#Condition-669"><span class="linenos">669</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Condition-670"><a href="#Condition-670"><span class="linenos">670</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Condition-671"><a href="#Condition-671"><span class="linenos">671</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Condition-672"><a href="#Condition-672"><span class="linenos">672</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Condition-673"><a href="#Condition-673"><span class="linenos">673</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Condition-674"><a href="#Condition-674"><span class="linenos">674</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="Condition-675"><a href="#Condition-675"><span class="linenos">675</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Condition-676"><a href="#Condition-676"><span class="linenos">676</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
</span><span id="Condition-677"><a href="#Condition-677"><span class="linenos">677</span></a>
</span><span id="Condition-678"><a href="#Condition-678"><span class="linenos">678</span></a><span class="sd"> Example:</span>
</span><span id="Condition-679"><a href="#Condition-679"><span class="linenos">679</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
</span><span id="Condition-680"><a href="#Condition-680"><span class="linenos">680</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
</span><span id="Condition-681"><a href="#Condition-681"><span class="linenos">681</span></a>
</span><span id="Condition-682"><a href="#Condition-682"><span class="linenos">682</span></a><span class="sd"> Args:</span>
</span><span id="Condition-683"><a href="#Condition-683"><span class="linenos">683</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Condition-684"><a href="#Condition-684"><span class="linenos">684</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Condition-685"><a href="#Condition-685"><span class="linenos">685</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Condition-686"><a href="#Condition-686"><span class="linenos">686</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
</span><span id="Condition-687"><a href="#Condition-687"><span class="linenos">687</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Condition-688"><a href="#Condition-688"><span class="linenos">688</span></a>
</span><span id="Condition-689"><a href="#Condition-689"><span class="linenos">689</span></a><span class="sd"> Returns:</span>
</span><span id="Condition-690"><a href="#Condition-690"><span class="linenos">690</span></a><span class="sd"> The new And condition.</span>
</span><span id="Condition-691"><a href="#Condition-691"><span class="linenos">691</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Condition-692"><a href="#Condition-692"><span class="linenos">692</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="Condition-693"><a href="#Condition-693"><span class="linenos">693</span></a>
</span><span id="Condition-694"><a href="#Condition-694"><span class="linenos">694</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
</span><span id="Condition-695"><a href="#Condition-695"><span class="linenos">695</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Condition-696"><a href="#Condition-696"><span class="linenos">696</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Condition-697"><a href="#Condition-697"><span class="linenos">697</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Condition-698"><a href="#Condition-698"><span class="linenos">698</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Condition-699"><a href="#Condition-699"><span class="linenos">699</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Condition-700"><a href="#Condition-700"><span class="linenos">700</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="Condition-701"><a href="#Condition-701"><span class="linenos">701</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Condition-702"><a href="#Condition-702"><span class="linenos">702</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
</span><span id="Condition-703"><a href="#Condition-703"><span class="linenos">703</span></a>
</span><span id="Condition-704"><a href="#Condition-704"><span class="linenos">704</span></a><span class="sd"> Example:</span>
</span><span id="Condition-705"><a href="#Condition-705"><span class="linenos">705</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
</span><span id="Condition-706"><a href="#Condition-706"><span class="linenos">706</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
</span><span id="Condition-707"><a href="#Condition-707"><span class="linenos">707</span></a>
</span><span id="Condition-708"><a href="#Condition-708"><span class="linenos">708</span></a><span class="sd"> Args:</span>
</span><span id="Condition-709"><a href="#Condition-709"><span class="linenos">709</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Condition-710"><a href="#Condition-710"><span class="linenos">710</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Condition-711"><a href="#Condition-711"><span class="linenos">711</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Condition-712"><a href="#Condition-712"><span class="linenos">712</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
</span><span id="Condition-713"><a href="#Condition-713"><span class="linenos">713</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Condition-714"><a href="#Condition-714"><span class="linenos">714</span></a>
</span><span id="Condition-715"><a href="#Condition-715"><span class="linenos">715</span></a><span class="sd"> Returns:</span>
</span><span id="Condition-716"><a href="#Condition-716"><span class="linenos">716</span></a><span class="sd"> The new Or condition.</span>
</span><span id="Condition-717"><a href="#Condition-717"><span class="linenos">717</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Condition-718"><a href="#Condition-718"><span class="linenos">718</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="Condition-719"><a href="#Condition-719"><span class="linenos">719</span></a>
</span><span id="Condition-720"><a href="#Condition-720"><span class="linenos">720</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
</span><span id="Condition-721"><a href="#Condition-721"><span class="linenos">721</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Condition-722"><a href="#Condition-722"><span class="linenos">722</span></a><span class="sd"> Wrap this condition with NOT.</span>
</span><span id="Condition-723"><a href="#Condition-723"><span class="linenos">723</span></a>
</span><span id="Condition-724"><a href="#Condition-724"><span class="linenos">724</span></a><span class="sd"> Example:</span>
</span><span id="Condition-725"><a href="#Condition-725"><span class="linenos">725</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
</span><span id="Condition-726"><a href="#Condition-726"><span class="linenos">726</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
</span><span id="Condition-727"><a href="#Condition-727"><span class="linenos">727</span></a>
</span><span id="Condition-728"><a href="#Condition-728"><span class="linenos">728</span></a><span class="sd"> Args:</span>
</span><span id="Condition-729"><a href="#Condition-729"><span class="linenos">729</span></a><span class="sd"> copy: whether or not to copy this object.</span>
</span><span id="Condition-730"><a href="#Condition-730"><span class="linenos">730</span></a>
</span><span id="Condition-731"><a href="#Condition-731"><span class="linenos">731</span></a><span class="sd"> Returns:</span>
</span><span id="Condition-732"><a href="#Condition-732"><span class="linenos">732</span></a><span class="sd"> The new Not instance.</span>
</span><span id="Condition-733"><a href="#Condition-733"><span class="linenos">733</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Condition-734"><a href="#Condition-734"><span class="linenos">734</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
</span><span id="Condition-735"><a href="#Condition-735"><span class="linenos">735</span></a>
</span><span id="Condition-736"><a href="#Condition-736"><span class="linenos">736</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
</span><span id="Condition-737"><a href="#Condition-737"><span class="linenos">737</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Condition-738"><a href="#Condition-738"><span class="linenos">738</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
</span><span id="Condition-739"><a href="#Condition-739"><span class="linenos">739</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Condition-740"><a href="#Condition-740"><span class="linenos">740</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Condition-741"><a href="#Condition-741"><span class="linenos">741</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Condition-742"><a href="#Condition-742"><span class="linenos">742</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Condition-743"><a href="#Condition-743"><span class="linenos">743</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
</span><span id="Condition-744"><a href="#Condition-744"><span class="linenos">744</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="Condition-745"><a href="#Condition-745"><span class="linenos">745</span></a>
</span><span id="Condition-746"><a href="#Condition-746"><span class="linenos">746</span></a> <span class="k">def</span> <span class="nf">_binop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">klass</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">reverse</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="Condition-747"><a href="#Condition-747"><span class="linenos">747</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
</span><span id="Condition-748"><a href="#Condition-748"><span class="linenos">748</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">convert</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Condition-749"><a href="#Condition-749"><span class="linenos">749</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">klass</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">klass</span><span class="p">):</span>
</span><span id="Condition-750"><a href="#Condition-750"><span class="linenos">750</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
</span><span id="Condition-751"><a href="#Condition-751"><span class="linenos">751</span></a> <span class="n">other</span> <span class="o">=</span> <span class="n">_wrap</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Binary</span><span class="p">)</span>
</span><span id="Condition-752"><a href="#Condition-752"><span class="linenos">752</span></a> <span class="k">if</span> <span class="n">reverse</span><span class="p">:</span>
</span><span id="Condition-753"><a href="#Condition-753"><span class="linenos">753</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">other</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">this</span><span class="p">)</span>
</span><span id="Condition-754"><a href="#Condition-754"><span class="linenos">754</span></a> <span class="k">return</span> <span class="n">klass</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">other</span><span class="p">)</span>
</span><span id="Condition-755"><a href="#Condition-755"><span class="linenos">755</span></a>
</span><span id="Condition-756"><a href="#Condition-756"><span class="linenos">756</span></a> <span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]):</span>
</span><span id="Condition-757"><a href="#Condition-757"><span class="linenos">757</span></a> <span class="k">return</span> <span class="n">Bracket</span><span class="p">(</span>
</span><span id="Condition-758"><a href="#Condition-758"><span class="linenos">758</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">ensure_list</span><span class="p">(</span><span class="n">other</span><span class="p">)]</span>
</span><span id="Condition-759"><a href="#Condition-759"><span class="linenos">759</span></a> <span class="p">)</span>
</span><span id="Condition-760"><a href="#Condition-760"><span class="linenos">760</span></a>
</span><span id="Condition-761"><a href="#Condition-761"><span class="linenos">761</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
</span><span id="Condition-762"><a href="#Condition-762"><span class="linenos">762</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Condition-763"><a href="#Condition-763"><span class="linenos">763</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
</span><span id="Condition-764"><a href="#Condition-764"><span class="linenos">764</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
</span><span id="Condition-765"><a href="#Condition-765"><span class="linenos">765</span></a> <span class="n">this</span><span class="o">=</span><span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
</span><span id="Condition-766"><a href="#Condition-766"><span class="linenos">766</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
</span><span id="Condition-767"><a href="#Condition-767"><span class="linenos">767</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Condition-768"><a href="#Condition-768"><span class="linenos">768</span></a> <span class="p">)</span>
</span><span id="Condition-769"><a href="#Condition-769"><span class="linenos">769</span></a>
</span><span id="Condition-770"><a href="#Condition-770"><span class="linenos">770</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
</span><span id="Condition-771"><a href="#Condition-771"><span class="linenos">771</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
</span><span id="Condition-772"><a href="#Condition-772"><span class="linenos">772</span></a> <span class="n">this</span><span class="o">=</span><span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
</span><span id="Condition-773"><a href="#Condition-773"><span class="linenos">773</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="Condition-774"><a href="#Condition-774"><span class="linenos">774</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="Condition-775"><a href="#Condition-775"><span class="linenos">775</span></a> <span class="p">)</span>
</span><span id="Condition-776"><a href="#Condition-776"><span class="linenos">776</span></a>
</span><span id="Condition-777"><a href="#Condition-777"><span class="linenos">777</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
</span><span id="Condition-778"><a href="#Condition-778"><span class="linenos">778</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-779"><a href="#Condition-779"><span class="linenos">779</span></a>
</span><span id="Condition-780"><a href="#Condition-780"><span class="linenos">780</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
</span><span id="Condition-781"><a href="#Condition-781"><span class="linenos">781</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-782"><a href="#Condition-782"><span class="linenos">782</span></a>
</span><span id="Condition-783"><a href="#Condition-783"><span class="linenos">783</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
</span><span id="Condition-784"><a href="#Condition-784"><span class="linenos">784</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-785"><a href="#Condition-785"><span class="linenos">785</span></a>
</span><span id="Condition-786"><a href="#Condition-786"><span class="linenos">786</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
</span><span id="Condition-787"><a href="#Condition-787"><span class="linenos">787</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-788"><a href="#Condition-788"><span class="linenos">788</span></a>
</span><span id="Condition-789"><a href="#Condition-789"><span class="linenos">789</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
</span><span id="Condition-790"><a href="#Condition-790"><span class="linenos">790</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-791"><a href="#Condition-791"><span class="linenos">791</span></a>
</span><span id="Condition-792"><a href="#Condition-792"><span class="linenos">792</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
</span><span id="Condition-793"><a href="#Condition-793"><span class="linenos">793</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-794"><a href="#Condition-794"><span class="linenos">794</span></a>
</span><span id="Condition-795"><a href="#Condition-795"><span class="linenos">795</span></a> <span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LT</span><span class="p">:</span>
</span><span id="Condition-796"><a href="#Condition-796"><span class="linenos">796</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-797"><a href="#Condition-797"><span class="linenos">797</span></a>
</span><span id="Condition-798"><a href="#Condition-798"><span class="linenos">798</span></a> <span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">LTE</span><span class="p">:</span>
</span><span id="Condition-799"><a href="#Condition-799"><span class="linenos">799</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">LTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-800"><a href="#Condition-800"><span class="linenos">800</span></a>
</span><span id="Condition-801"><a href="#Condition-801"><span class="linenos">801</span></a> <span class="k">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GT</span><span class="p">:</span>
</span><span id="Condition-802"><a href="#Condition-802"><span class="linenos">802</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GT</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-803"><a href="#Condition-803"><span class="linenos">803</span></a>
</span><span id="Condition-804"><a href="#Condition-804"><span class="linenos">804</span></a> <span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">GTE</span><span class="p">:</span>
</span><span id="Condition-805"><a href="#Condition-805"><span class="linenos">805</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">GTE</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-806"><a href="#Condition-806"><span class="linenos">806</span></a>
</span><span id="Condition-807"><a href="#Condition-807"><span class="linenos">807</span></a> <span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
</span><span id="Condition-808"><a href="#Condition-808"><span class="linenos">808</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-809"><a href="#Condition-809"><span class="linenos">809</span></a>
</span><span id="Condition-810"><a href="#Condition-810"><span class="linenos">810</span></a> <span class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Add</span><span class="p">:</span>
</span><span id="Condition-811"><a href="#Condition-811"><span class="linenos">811</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Add</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Condition-812"><a href="#Condition-812"><span class="linenos">812</span></a>
</span><span id="Condition-813"><a href="#Condition-813"><span class="linenos">813</span></a> <span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
</span><span id="Condition-814"><a href="#Condition-814"><span class="linenos">814</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-815"><a href="#Condition-815"><span class="linenos">815</span></a>
</span><span id="Condition-816"><a href="#Condition-816"><span class="linenos">816</span></a> <span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Sub</span><span class="p">:</span>
</span><span id="Condition-817"><a href="#Condition-817"><span class="linenos">817</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Sub</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Condition-818"><a href="#Condition-818"><span class="linenos">818</span></a>
</span><span id="Condition-819"><a href="#Condition-819"><span class="linenos">819</span></a> <span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
</span><span id="Condition-820"><a href="#Condition-820"><span class="linenos">820</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-821"><a href="#Condition-821"><span class="linenos">821</span></a>
</span><span id="Condition-822"><a href="#Condition-822"><span class="linenos">822</span></a> <span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mul</span><span class="p">:</span>
</span><span id="Condition-823"><a href="#Condition-823"><span class="linenos">823</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Condition-824"><a href="#Condition-824"><span class="linenos">824</span></a>
</span><span id="Condition-825"><a href="#Condition-825"><span class="linenos">825</span></a> <span class="k">def</span> <span class="fm">__truediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
</span><span id="Condition-826"><a href="#Condition-826"><span class="linenos">826</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-827"><a href="#Condition-827"><span class="linenos">827</span></a>
</span><span id="Condition-828"><a href="#Condition-828"><span class="linenos">828</span></a> <span class="k">def</span> <span class="fm">__rtruediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Div</span><span class="p">:</span>
</span><span id="Condition-829"><a href="#Condition-829"><span class="linenos">829</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Condition-830"><a href="#Condition-830"><span class="linenos">830</span></a>
</span><span id="Condition-831"><a href="#Condition-831"><span class="linenos">831</span></a> <span class="k">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
</span><span id="Condition-832"><a href="#Condition-832"><span class="linenos">832</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-833"><a href="#Condition-833"><span class="linenos">833</span></a>
</span><span id="Condition-834"><a href="#Condition-834"><span class="linenos">834</span></a> <span class="k">def</span> <span class="fm">__rfloordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">IntDiv</span><span class="p">:</span>
</span><span id="Condition-835"><a href="#Condition-835"><span class="linenos">835</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">IntDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Condition-836"><a href="#Condition-836"><span class="linenos">836</span></a>
</span><span id="Condition-837"><a href="#Condition-837"><span class="linenos">837</span></a> <span class="k">def</span> <span class="fm">__mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
</span><span id="Condition-838"><a href="#Condition-838"><span class="linenos">838</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-839"><a href="#Condition-839"><span class="linenos">839</span></a>
</span><span id="Condition-840"><a href="#Condition-840"><span class="linenos">840</span></a> <span class="k">def</span> <span class="fm">__rmod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Mod</span><span class="p">:</span>
</span><span id="Condition-841"><a href="#Condition-841"><span class="linenos">841</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Condition-842"><a href="#Condition-842"><span class="linenos">842</span></a>
</span><span id="Condition-843"><a href="#Condition-843"><span class="linenos">843</span></a> <span class="k">def</span> <span class="fm">__pow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
</span><span id="Condition-844"><a href="#Condition-844"><span class="linenos">844</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-845"><a href="#Condition-845"><span class="linenos">845</span></a>
</span><span id="Condition-846"><a href="#Condition-846"><span class="linenos">846</span></a> <span class="k">def</span> <span class="fm">__rpow__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Pow</span><span class="p">:</span>
</span><span id="Condition-847"><a href="#Condition-847"><span class="linenos">847</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Pow</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Condition-848"><a href="#Condition-848"><span class="linenos">848</span></a>
</span><span id="Condition-849"><a href="#Condition-849"><span class="linenos">849</span></a> <span class="k">def</span> <span class="fm">__and__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
</span><span id="Condition-850"><a href="#Condition-850"><span class="linenos">850</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-851"><a href="#Condition-851"><span class="linenos">851</span></a>
</span><span id="Condition-852"><a href="#Condition-852"><span class="linenos">852</span></a> <span class="k">def</span> <span class="fm">__rand__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">And</span><span class="p">:</span>
</span><span id="Condition-853"><a href="#Condition-853"><span class="linenos">853</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Condition-854"><a href="#Condition-854"><span class="linenos">854</span></a>
</span><span id="Condition-855"><a href="#Condition-855"><span class="linenos">855</span></a> <span class="k">def</span> <span class="fm">__or__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
</span><span id="Condition-856"><a href="#Condition-856"><span class="linenos">856</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span><span id="Condition-857"><a href="#Condition-857"><span class="linenos">857</span></a>
</span><span id="Condition-858"><a href="#Condition-858"><span class="linenos">858</span></a> <span class="k">def</span> <span class="fm">__ror__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Or</span><span class="p">:</span>
</span><span id="Condition-859"><a href="#Condition-859"><span class="linenos">859</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Or</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Condition-860"><a href="#Condition-860"><span class="linenos">860</span></a>
</span><span id="Condition-861"><a href="#Condition-861"><span class="linenos">861</span></a> <span class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Neg</span><span class="p">:</span>
</span><span id="Condition-862"><a href="#Condition-862"><span class="linenos">862</span></a> <span class="k">return</span> <span class="n">Neg</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">Binary</span><span class="p">))</span>
</span><span id="Condition-863"><a href="#Condition-863"><span class="linenos">863</span></a>
</span><span id="Condition-864"><a href="#Condition-864"><span class="linenos">864</span></a> <span class="k">def</span> <span class="fm">__invert__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
</span><span id="Condition-865"><a href="#Condition-865"><span class="linenos">865</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span>
</span></pre></div>
<div id="Condition.and_" class="classattr">
<input id="Condition.and_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">and_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span>
<label class="view-source-button" for="Condition.and_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.and_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Condition.and_-668"><a href="#Condition.and_-668"><span class="linenos">668</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
</span><span id="Condition.and_-669"><a href="#Condition.and_-669"><span class="linenos">669</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Condition.and_-670"><a href="#Condition.and_-670"><span class="linenos">670</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Condition.and_-671"><a href="#Condition.and_-671"><span class="linenos">671</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Condition.and_-672"><a href="#Condition.and_-672"><span class="linenos">672</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Condition.and_-673"><a href="#Condition.and_-673"><span class="linenos">673</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Condition.and_-674"><a href="#Condition.and_-674"><span class="linenos">674</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="Condition.and_-675"><a href="#Condition.and_-675"><span class="linenos">675</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Condition.and_-676"><a href="#Condition.and_-676"><span class="linenos">676</span></a><span class="sd"> AND this condition with one or multiple expressions.</span>
</span><span id="Condition.and_-677"><a href="#Condition.and_-677"><span class="linenos">677</span></a>
</span><span id="Condition.and_-678"><a href="#Condition.and_-678"><span class="linenos">678</span></a><span class="sd"> Example:</span>
</span><span id="Condition.and_-679"><a href="#Condition.and_-679"><span class="linenos">679</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).and_(&quot;y=1&quot;).sql()</span>
</span><span id="Condition.and_-680"><a href="#Condition.and_-680"><span class="linenos">680</span></a><span class="sd"> &#39;x = 1 AND y = 1&#39;</span>
</span><span id="Condition.and_-681"><a href="#Condition.and_-681"><span class="linenos">681</span></a>
</span><span id="Condition.and_-682"><a href="#Condition.and_-682"><span class="linenos">682</span></a><span class="sd"> Args:</span>
</span><span id="Condition.and_-683"><a href="#Condition.and_-683"><span class="linenos">683</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Condition.and_-684"><a href="#Condition.and_-684"><span class="linenos">684</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Condition.and_-685"><a href="#Condition.and_-685"><span class="linenos">685</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Condition.and_-686"><a href="#Condition.and_-686"><span class="linenos">686</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
</span><span id="Condition.and_-687"><a href="#Condition.and_-687"><span class="linenos">687</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Condition.and_-688"><a href="#Condition.and_-688"><span class="linenos">688</span></a>
</span><span id="Condition.and_-689"><a href="#Condition.and_-689"><span class="linenos">689</span></a><span class="sd"> Returns:</span>
</span><span id="Condition.and_-690"><a href="#Condition.and_-690"><span class="linenos">690</span></a><span class="sd"> The new And condition.</span>
</span><span id="Condition.and_-691"><a href="#Condition.and_-691"><span class="linenos">691</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Condition.and_-692"><a href="#Condition.and_-692"><span class="linenos">692</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>AND this condition with one or multiple expressions.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">condition</span><span class="p">(</span><span class="s2">&quot;x=1&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">and_</span><span class="p">(</span><span class="s2">&quot;y=1&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;x = 1 AND y = 1&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> whether or not to copy the involved expressions (only applies to Expressions).</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new And condition.</p>
</blockquote>
</div>
</div>
<div id="Condition.or_" class="classattr">
<input id="Condition.or_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">or_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span>
<label class="view-source-button" for="Condition.or_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.or_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Condition.or_-694"><a href="#Condition.or_-694"><span class="linenos">694</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
</span><span id="Condition.or_-695"><a href="#Condition.or_-695"><span class="linenos">695</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Condition.or_-696"><a href="#Condition.or_-696"><span class="linenos">696</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Condition.or_-697"><a href="#Condition.or_-697"><span class="linenos">697</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Condition.or_-698"><a href="#Condition.or_-698"><span class="linenos">698</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Condition.or_-699"><a href="#Condition.or_-699"><span class="linenos">699</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Condition.or_-700"><a href="#Condition.or_-700"><span class="linenos">700</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="Condition.or_-701"><a href="#Condition.or_-701"><span class="linenos">701</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Condition.or_-702"><a href="#Condition.or_-702"><span class="linenos">702</span></a><span class="sd"> OR this condition with one or multiple expressions.</span>
</span><span id="Condition.or_-703"><a href="#Condition.or_-703"><span class="linenos">703</span></a>
</span><span id="Condition.or_-704"><a href="#Condition.or_-704"><span class="linenos">704</span></a><span class="sd"> Example:</span>
</span><span id="Condition.or_-705"><a href="#Condition.or_-705"><span class="linenos">705</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).or_(&quot;y=1&quot;).sql()</span>
</span><span id="Condition.or_-706"><a href="#Condition.or_-706"><span class="linenos">706</span></a><span class="sd"> &#39;x = 1 OR y = 1&#39;</span>
</span><span id="Condition.or_-707"><a href="#Condition.or_-707"><span class="linenos">707</span></a>
</span><span id="Condition.or_-708"><a href="#Condition.or_-708"><span class="linenos">708</span></a><span class="sd"> Args:</span>
</span><span id="Condition.or_-709"><a href="#Condition.or_-709"><span class="linenos">709</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Condition.or_-710"><a href="#Condition.or_-710"><span class="linenos">710</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Condition.or_-711"><a href="#Condition.or_-711"><span class="linenos">711</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Condition.or_-712"><a href="#Condition.or_-712"><span class="linenos">712</span></a><span class="sd"> copy: whether or not to copy the involved expressions (only applies to Expressions).</span>
</span><span id="Condition.or_-713"><a href="#Condition.or_-713"><span class="linenos">713</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Condition.or_-714"><a href="#Condition.or_-714"><span class="linenos">714</span></a>
</span><span id="Condition.or_-715"><a href="#Condition.or_-715"><span class="linenos">715</span></a><span class="sd"> Returns:</span>
</span><span id="Condition.or_-716"><a href="#Condition.or_-716"><span class="linenos">716</span></a><span class="sd"> The new Or condition.</span>
</span><span id="Condition.or_-717"><a href="#Condition.or_-717"><span class="linenos">717</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Condition.or_-718"><a href="#Condition.or_-718"><span class="linenos">718</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>OR this condition with one or multiple expressions.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">condition</span><span class="p">(</span><span class="s2">&quot;x=1&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">or_</span><span class="p">(</span><span class="s2">&quot;y=1&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;x = 1 OR y = 1&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> whether or not to copy the involved expressions (only applies to Expressions).</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new Or condition.</p>
</blockquote>
</div>
</div>
<div id="Condition.not_" class="classattr">
<input id="Condition.not_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">not_</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Condition.not_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.not_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Condition.not_-720"><a href="#Condition.not_-720"><span class="linenos">720</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">):</span>
</span><span id="Condition.not_-721"><a href="#Condition.not_-721"><span class="linenos">721</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Condition.not_-722"><a href="#Condition.not_-722"><span class="linenos">722</span></a><span class="sd"> Wrap this condition with NOT.</span>
</span><span id="Condition.not_-723"><a href="#Condition.not_-723"><span class="linenos">723</span></a>
</span><span id="Condition.not_-724"><a href="#Condition.not_-724"><span class="linenos">724</span></a><span class="sd"> Example:</span>
</span><span id="Condition.not_-725"><a href="#Condition.not_-725"><span class="linenos">725</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).not_().sql()</span>
</span><span id="Condition.not_-726"><a href="#Condition.not_-726"><span class="linenos">726</span></a><span class="sd"> &#39;NOT x = 1&#39;</span>
</span><span id="Condition.not_-727"><a href="#Condition.not_-727"><span class="linenos">727</span></a>
</span><span id="Condition.not_-728"><a href="#Condition.not_-728"><span class="linenos">728</span></a><span class="sd"> Args:</span>
</span><span id="Condition.not_-729"><a href="#Condition.not_-729"><span class="linenos">729</span></a><span class="sd"> copy: whether or not to copy this object.</span>
</span><span id="Condition.not_-730"><a href="#Condition.not_-730"><span class="linenos">730</span></a>
</span><span id="Condition.not_-731"><a href="#Condition.not_-731"><span class="linenos">731</span></a><span class="sd"> Returns:</span>
</span><span id="Condition.not_-732"><a href="#Condition.not_-732"><span class="linenos">732</span></a><span class="sd"> The new Not instance.</span>
</span><span id="Condition.not_-733"><a href="#Condition.not_-733"><span class="linenos">733</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Condition.not_-734"><a href="#Condition.not_-734"><span class="linenos">734</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Wrap this condition with NOT.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">condition</span><span class="p">(</span><span class="s2">&quot;x=1&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">not_</span><span class="p">()</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;NOT x = 1&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>copy:</strong> whether or not to copy this object.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new Not instance.</p>
</blockquote>
</div>
</div>
<div id="Condition.as_" class="classattr">
<input id="Condition.as_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">as_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span>,</span><span class="param"> <span class="n">quoted</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Alias">sqlglot.expressions.Alias</a></span>:</span></span>
<label class="view-source-button" for="Condition.as_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.as_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Condition.as_-736"><a href="#Condition.as_-736"><span class="linenos">736</span></a> <span class="k">def</span> <span class="nf">as_</span><span class="p">(</span>
</span><span id="Condition.as_-737"><a href="#Condition.as_-737"><span class="linenos">737</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Condition.as_-738"><a href="#Condition.as_-738"><span class="linenos">738</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
</span><span id="Condition.as_-739"><a href="#Condition.as_-739"><span class="linenos">739</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Condition.as_-740"><a href="#Condition.as_-740"><span class="linenos">740</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Condition.as_-741"><a href="#Condition.as_-741"><span class="linenos">741</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Condition.as_-742"><a href="#Condition.as_-742"><span class="linenos">742</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Condition.as_-743"><a href="#Condition.as_-743"><span class="linenos">743</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Alias</span><span class="p">:</span>
</span><span id="Condition.as_-744"><a href="#Condition.as_-744"><span class="linenos">744</span></a> <span class="k">return</span> <span class="n">alias_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
</div>
<div id="Condition.isin" class="classattr">
<input id="Condition.isin-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">isin</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Any</span>,</span><span class="param"> <span class="n">query</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#In">sqlglot.expressions.In</a></span>:</span></span>
<label class="view-source-button" for="Condition.isin-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.isin"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Condition.isin-761"><a href="#Condition.isin-761"><span class="linenos">761</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
</span><span id="Condition.isin-762"><a href="#Condition.isin-762"><span class="linenos">762</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Condition.isin-763"><a href="#Condition.isin-763"><span class="linenos">763</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
</span><span id="Condition.isin-764"><a href="#Condition.isin-764"><span class="linenos">764</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
</span><span id="Condition.isin-765"><a href="#Condition.isin-765"><span class="linenos">765</span></a> <span class="n">this</span><span class="o">=</span><span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
</span><span id="Condition.isin-766"><a href="#Condition.isin-766"><span class="linenos">766</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
</span><span id="Condition.isin-767"><a href="#Condition.isin-767"><span class="linenos">767</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Condition.isin-768"><a href="#Condition.isin-768"><span class="linenos">768</span></a> <span class="p">)</span>
</span></pre></div>
</div>
<div id="Condition.between" class="classattr">
<input id="Condition.between-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">between</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">low</span><span class="p">:</span> <span class="n">Any</span>,</span><span class="param"> <span class="n">high</span><span class="p">:</span> <span class="n">Any</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Between">sqlglot.expressions.Between</a></span>:</span></span>
<label class="view-source-button" for="Condition.between-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.between"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Condition.between-770"><a href="#Condition.between-770"><span class="linenos">770</span></a> <span class="k">def</span> <span class="nf">between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">low</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">high</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Between</span><span class="p">:</span>
</span><span id="Condition.between-771"><a href="#Condition.between-771"><span class="linenos">771</span></a> <span class="k">return</span> <span class="n">Between</span><span class="p">(</span>
</span><span id="Condition.between-772"><a href="#Condition.between-772"><span class="linenos">772</span></a> <span class="n">this</span><span class="o">=</span><span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
</span><span id="Condition.between-773"><a href="#Condition.between-773"><span class="linenos">773</span></a> <span class="n">low</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">low</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="Condition.between-774"><a href="#Condition.between-774"><span class="linenos">774</span></a> <span class="n">high</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">high</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="Condition.between-775"><a href="#Condition.between-775"><span class="linenos">775</span></a> <span class="p">)</span>
</span></pre></div>
</div>
<div id="Condition.is_" class="classattr">
<input id="Condition.is_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">is_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#Is">sqlglot.expressions.Is</a></span>:</span></span>
<label class="view-source-button" for="Condition.is_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.is_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Condition.is_-777"><a href="#Condition.is_-777"><span class="linenos">777</span></a> <span class="k">def</span> <span class="nf">is_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Is</span><span class="p">:</span>
</span><span id="Condition.is_-778"><a href="#Condition.is_-778"><span class="linenos">778</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Is</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
</div>
<div id="Condition.like" class="classattr">
<input id="Condition.like-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">like</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#Like">sqlglot.expressions.Like</a></span>:</span></span>
<label class="view-source-button" for="Condition.like-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.like"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Condition.like-780"><a href="#Condition.like-780"><span class="linenos">780</span></a> <span class="k">def</span> <span class="nf">like</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Like</span><span class="p">:</span>
</span><span id="Condition.like-781"><a href="#Condition.like-781"><span class="linenos">781</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">Like</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
</div>
<div id="Condition.ilike" class="classattr">
<input id="Condition.ilike-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">ilike</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#ILike">sqlglot.expressions.ILike</a></span>:</span></span>
<label class="view-source-button" for="Condition.ilike-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.ilike"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Condition.ilike-783"><a href="#Condition.ilike-783"><span class="linenos">783</span></a> <span class="k">def</span> <span class="nf">ilike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ILike</span><span class="p">:</span>
</span><span id="Condition.ilike-784"><a href="#Condition.ilike-784"><span class="linenos">784</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">ILike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
</div>
<div id="Condition.eq" class="classattr">
<input id="Condition.eq-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">eq</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">other</span><span class="p">:</span> <span class="n">Any</span></span><span class="return-annotation">) -> <span class="n"><a href="#EQ">sqlglot.expressions.EQ</a></span>:</span></span>
<label class="view-source-button" for="Condition.eq-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.eq"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Condition.eq-786"><a href="#Condition.eq-786"><span class="linenos">786</span></a> <span class="k">def</span> <span class="nf">eq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">EQ</span><span class="p">:</span>
</span><span id="Condition.eq-787"><a href="#Condition.eq-787"><span class="linenos">787</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">EQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
</div>
<div id="Condition.neq" class="classattr">
<input id="Condition.neq-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">neq</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">other</span><span class="p">:</span> <span class="n">Any</span></span><span class="return-annotation">) -> <span class="n"><a href="#NEQ">sqlglot.expressions.NEQ</a></span>:</span></span>
<label class="view-source-button" for="Condition.neq-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.neq"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Condition.neq-789"><a href="#Condition.neq-789"><span class="linenos">789</span></a> <span class="k">def</span> <span class="nf">neq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">NEQ</span><span class="p">:</span>
</span><span id="Condition.neq-790"><a href="#Condition.neq-790"><span class="linenos">790</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">NEQ</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
</div>
<div id="Condition.rlike" class="classattr">
<input id="Condition.rlike-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">rlike</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#RegexpLike">sqlglot.expressions.RegexpLike</a></span>:</span></span>
<label class="view-source-button" for="Condition.rlike-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Condition.rlike"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Condition.rlike-792"><a href="#Condition.rlike-792"><span class="linenos">792</span></a> <span class="k">def</span> <span class="nf">rlike</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">RegexpLike</span><span class="p">:</span>
</span><span id="Condition.rlike-793"><a href="#Condition.rlike-793"><span class="linenos">793</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_binop</span><span class="p">(</span><span class="n">RegexpLike</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
</span></pre></div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Condition.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Condition.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Condition.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Condition.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Condition.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Condition.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Condition.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Condition.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Condition.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Condition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Condition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Condition.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Condition.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Condition.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Condition.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Condition.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Condition.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Condition.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Condition.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Condition.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Condition.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Condition.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Condition.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Condition.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Condition.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Condition.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Condition.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Condition.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Condition.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Condition.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Condition.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Condition.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Condition.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Condition.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Condition.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Condition.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Condition.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Condition.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Predicate">
<input id="Predicate-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Predicate</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
<label class="view-source-button" for="Predicate-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Predicate"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Predicate-868"><a href="#Predicate-868"><span class="linenos">868</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="Predicate-869"><a href="#Predicate-869"><span class="linenos">869</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Relationships like x = y, x &gt; 1, x &gt;= y.&quot;&quot;&quot;</span>
</span></pre></div>
<div class="docstring"><p>Relationships like x = y, x &gt; 1, x &gt;= y.</p>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Predicate.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Predicate.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Predicate.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Predicate.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Predicate.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Predicate.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Predicate.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Predicate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Predicate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Predicate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Predicate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Predicate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Predicate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Predicate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Predicate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Predicate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Predicate.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Predicate.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Predicate.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Predicate.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Predicate.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Predicate.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Predicate.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Predicate.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Predicate.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Predicate.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Predicate.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Predicate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Predicate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Predicate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Predicate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Predicate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Predicate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Predicate.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Predicate.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Predicate.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Predicate.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Predicate.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Predicate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Predicate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Predicate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Predicate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Predicate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Predicate.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Predicate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Predicate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Predicate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Predicate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Predicate.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Predicate.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="DerivedTable">
<input id="DerivedTable-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DerivedTable</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="DerivedTable-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DerivedTable"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DerivedTable-872"><a href="#DerivedTable-872"><span class="linenos">872</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="DerivedTable-873"><a href="#DerivedTable-873"><span class="linenos">873</span></a> <span class="nd">@property</span>
</span><span id="DerivedTable-874"><a href="#DerivedTable-874"><span class="linenos">874</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="DerivedTable-875"><a href="#DerivedTable-875"><span class="linenos">875</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</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;alias&quot;</span><span class="p">)</span>
</span><span id="DerivedTable-876"><a href="#DerivedTable-876"><span class="linenos">876</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span>
</span><span id="DerivedTable-877"><a href="#DerivedTable-877"><span class="linenos">877</span></a> <span class="k">return</span> <span class="p">[]</span>
</span><span id="DerivedTable-878"><a href="#DerivedTable-878"><span class="linenos">878</span></a> <span class="n">column_list</span> <span class="o">=</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">assert_is</span><span class="p">(</span><span class="n">TableAlias</span><span class="p">)</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;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
</span><span id="DerivedTable-879"><a href="#DerivedTable-879"><span class="linenos">879</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">column_list</span><span class="p">]</span>
</span><span id="DerivedTable-880"><a href="#DerivedTable-880"><span class="linenos">880</span></a>
</span><span id="DerivedTable-881"><a href="#DerivedTable-881"><span class="linenos">881</span></a> <span class="nd">@property</span>
</span><span id="DerivedTable-882"><a href="#DerivedTable-882"><span class="linenos">882</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="DerivedTable-883"><a href="#DerivedTable-883"><span class="linenos">883</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">selects</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">)</span> <span class="k">else</span> <span class="p">[]</span>
</span><span id="DerivedTable-884"><a href="#DerivedTable-884"><span class="linenos">884</span></a>
</span><span id="DerivedTable-885"><a href="#DerivedTable-885"><span class="linenos">885</span></a> <span class="nd">@property</span>
</span><span id="DerivedTable-886"><a href="#DerivedTable-886"><span class="linenos">886</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="DerivedTable-887"><a href="#DerivedTable-887"><span class="linenos">887</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">select</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selects</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DerivedTable.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DerivedTable.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DerivedTable.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DerivedTable.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DerivedTable.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DerivedTable.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DerivedTable.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DerivedTable.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DerivedTable.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DerivedTable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DerivedTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DerivedTable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DerivedTable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DerivedTable.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DerivedTable.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DerivedTable.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DerivedTable.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DerivedTable.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DerivedTable.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DerivedTable.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DerivedTable.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DerivedTable.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DerivedTable.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DerivedTable.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DerivedTable.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DerivedTable.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DerivedTable.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DerivedTable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DerivedTable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DerivedTable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DerivedTable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DerivedTable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DerivedTable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DerivedTable.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DerivedTable.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DerivedTable.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DerivedTable.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DerivedTable.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Unionable">
<input id="Unionable-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Unionable</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Unionable-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Unionable"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Unionable-890"><a href="#Unionable-890"><span class="linenos">890</span></a><span class="k">class</span> <span class="nc">Unionable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Unionable-891"><a href="#Unionable-891"><span class="linenos">891</span></a> <span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
</span><span id="Unionable-892"><a href="#Unionable-892"><span class="linenos">892</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Unionable-893"><a href="#Unionable-893"><span class="linenos">893</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
</span><span id="Unionable-894"><a href="#Unionable-894"><span class="linenos">894</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Unionable-895"><a href="#Unionable-895"><span class="linenos">895</span></a><span class="sd"> Builds a UNION expression.</span>
</span><span id="Unionable-896"><a href="#Unionable-896"><span class="linenos">896</span></a>
</span><span id="Unionable-897"><a href="#Unionable-897"><span class="linenos">897</span></a><span class="sd"> Example:</span>
</span><span id="Unionable-898"><a href="#Unionable-898"><span class="linenos">898</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="Unionable-899"><a href="#Unionable-899"><span class="linenos">899</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).union(&quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="Unionable-900"><a href="#Unionable-900"><span class="linenos">900</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
</span><span id="Unionable-901"><a href="#Unionable-901"><span class="linenos">901</span></a>
</span><span id="Unionable-902"><a href="#Unionable-902"><span class="linenos">902</span></a><span class="sd"> Args:</span>
</span><span id="Unionable-903"><a href="#Unionable-903"><span class="linenos">903</span></a><span class="sd"> expression: the SQL code string.</span>
</span><span id="Unionable-904"><a href="#Unionable-904"><span class="linenos">904</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Unionable-905"><a href="#Unionable-905"><span class="linenos">905</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="Unionable-906"><a href="#Unionable-906"><span class="linenos">906</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Unionable-907"><a href="#Unionable-907"><span class="linenos">907</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Unionable-908"><a href="#Unionable-908"><span class="linenos">908</span></a>
</span><span id="Unionable-909"><a href="#Unionable-909"><span class="linenos">909</span></a><span class="sd"> Returns:</span>
</span><span id="Unionable-910"><a href="#Unionable-910"><span class="linenos">910</span></a><span class="sd"> The new Union expression.</span>
</span><span id="Unionable-911"><a href="#Unionable-911"><span class="linenos">911</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Unionable-912"><a href="#Unionable-912"><span class="linenos">912</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="Unionable-913"><a href="#Unionable-913"><span class="linenos">913</span></a>
</span><span id="Unionable-914"><a href="#Unionable-914"><span class="linenos">914</span></a> <span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
</span><span id="Unionable-915"><a href="#Unionable-915"><span class="linenos">915</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Unionable-916"><a href="#Unionable-916"><span class="linenos">916</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
</span><span id="Unionable-917"><a href="#Unionable-917"><span class="linenos">917</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Unionable-918"><a href="#Unionable-918"><span class="linenos">918</span></a><span class="sd"> Builds an INTERSECT expression.</span>
</span><span id="Unionable-919"><a href="#Unionable-919"><span class="linenos">919</span></a>
</span><span id="Unionable-920"><a href="#Unionable-920"><span class="linenos">920</span></a><span class="sd"> Example:</span>
</span><span id="Unionable-921"><a href="#Unionable-921"><span class="linenos">921</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="Unionable-922"><a href="#Unionable-922"><span class="linenos">922</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).intersect(&quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="Unionable-923"><a href="#Unionable-923"><span class="linenos">923</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
</span><span id="Unionable-924"><a href="#Unionable-924"><span class="linenos">924</span></a>
</span><span id="Unionable-925"><a href="#Unionable-925"><span class="linenos">925</span></a><span class="sd"> Args:</span>
</span><span id="Unionable-926"><a href="#Unionable-926"><span class="linenos">926</span></a><span class="sd"> expression: the SQL code string.</span>
</span><span id="Unionable-927"><a href="#Unionable-927"><span class="linenos">927</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Unionable-928"><a href="#Unionable-928"><span class="linenos">928</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="Unionable-929"><a href="#Unionable-929"><span class="linenos">929</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Unionable-930"><a href="#Unionable-930"><span class="linenos">930</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Unionable-931"><a href="#Unionable-931"><span class="linenos">931</span></a>
</span><span id="Unionable-932"><a href="#Unionable-932"><span class="linenos">932</span></a><span class="sd"> Returns:</span>
</span><span id="Unionable-933"><a href="#Unionable-933"><span class="linenos">933</span></a><span class="sd"> The new Intersect expression.</span>
</span><span id="Unionable-934"><a href="#Unionable-934"><span class="linenos">934</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Unionable-935"><a href="#Unionable-935"><span class="linenos">935</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="Unionable-936"><a href="#Unionable-936"><span class="linenos">936</span></a>
</span><span id="Unionable-937"><a href="#Unionable-937"><span class="linenos">937</span></a> <span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
</span><span id="Unionable-938"><a href="#Unionable-938"><span class="linenos">938</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Unionable-939"><a href="#Unionable-939"><span class="linenos">939</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
</span><span id="Unionable-940"><a href="#Unionable-940"><span class="linenos">940</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Unionable-941"><a href="#Unionable-941"><span class="linenos">941</span></a><span class="sd"> Builds an EXCEPT expression.</span>
</span><span id="Unionable-942"><a href="#Unionable-942"><span class="linenos">942</span></a>
</span><span id="Unionable-943"><a href="#Unionable-943"><span class="linenos">943</span></a><span class="sd"> Example:</span>
</span><span id="Unionable-944"><a href="#Unionable-944"><span class="linenos">944</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="Unionable-945"><a href="#Unionable-945"><span class="linenos">945</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).except_(&quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="Unionable-946"><a href="#Unionable-946"><span class="linenos">946</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
</span><span id="Unionable-947"><a href="#Unionable-947"><span class="linenos">947</span></a>
</span><span id="Unionable-948"><a href="#Unionable-948"><span class="linenos">948</span></a><span class="sd"> Args:</span>
</span><span id="Unionable-949"><a href="#Unionable-949"><span class="linenos">949</span></a><span class="sd"> expression: the SQL code string.</span>
</span><span id="Unionable-950"><a href="#Unionable-950"><span class="linenos">950</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Unionable-951"><a href="#Unionable-951"><span class="linenos">951</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="Unionable-952"><a href="#Unionable-952"><span class="linenos">952</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Unionable-953"><a href="#Unionable-953"><span class="linenos">953</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Unionable-954"><a href="#Unionable-954"><span class="linenos">954</span></a>
</span><span id="Unionable-955"><a href="#Unionable-955"><span class="linenos">955</span></a><span class="sd"> Returns:</span>
</span><span id="Unionable-956"><a href="#Unionable-956"><span class="linenos">956</span></a><span class="sd"> The new Except expression.</span>
</span><span id="Unionable-957"><a href="#Unionable-957"><span class="linenos">957</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Unionable-958"><a href="#Unionable-958"><span class="linenos">958</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
<div id="Unionable.union" class="classattr">
<input id="Unionable.union-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">union</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Unionable">sqlglot.expressions.Unionable</a></span>:</span></span>
<label class="view-source-button" for="Unionable.union-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Unionable.union"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.union-891"><a href="#Unionable.union-891"><span class="linenos">891</span></a> <span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
</span><span id="Unionable.union-892"><a href="#Unionable.union-892"><span class="linenos">892</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Unionable.union-893"><a href="#Unionable.union-893"><span class="linenos">893</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
</span><span id="Unionable.union-894"><a href="#Unionable.union-894"><span class="linenos">894</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Unionable.union-895"><a href="#Unionable.union-895"><span class="linenos">895</span></a><span class="sd"> Builds a UNION expression.</span>
</span><span id="Unionable.union-896"><a href="#Unionable.union-896"><span class="linenos">896</span></a>
</span><span id="Unionable.union-897"><a href="#Unionable.union-897"><span class="linenos">897</span></a><span class="sd"> Example:</span>
</span><span id="Unionable.union-898"><a href="#Unionable.union-898"><span class="linenos">898</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="Unionable.union-899"><a href="#Unionable.union-899"><span class="linenos">899</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).union(&quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="Unionable.union-900"><a href="#Unionable.union-900"><span class="linenos">900</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
</span><span id="Unionable.union-901"><a href="#Unionable.union-901"><span class="linenos">901</span></a>
</span><span id="Unionable.union-902"><a href="#Unionable.union-902"><span class="linenos">902</span></a><span class="sd"> Args:</span>
</span><span id="Unionable.union-903"><a href="#Unionable.union-903"><span class="linenos">903</span></a><span class="sd"> expression: the SQL code string.</span>
</span><span id="Unionable.union-904"><a href="#Unionable.union-904"><span class="linenos">904</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Unionable.union-905"><a href="#Unionable.union-905"><span class="linenos">905</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="Unionable.union-906"><a href="#Unionable.union-906"><span class="linenos">906</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Unionable.union-907"><a href="#Unionable.union-907"><span class="linenos">907</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Unionable.union-908"><a href="#Unionable.union-908"><span class="linenos">908</span></a>
</span><span id="Unionable.union-909"><a href="#Unionable.union-909"><span class="linenos">909</span></a><span class="sd"> Returns:</span>
</span><span id="Unionable.union-910"><a href="#Unionable.union-910"><span class="linenos">910</span></a><span class="sd"> The new Union expression.</span>
</span><span id="Unionable.union-911"><a href="#Unionable.union-911"><span class="linenos">911</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Unionable.union-912"><a href="#Unionable.union-912"><span class="linenos">912</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Builds a UNION expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">sqlglot</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n"><a href="../sqlglot.html#parse_one">sqlglot.parse_one</a></span><span class="p">(</span><span class="s2">&quot;SELECT * FROM foo&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">union</span><span class="p">(</span><span class="s2">&quot;SELECT * FROM bla&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> the SQL code string.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>distinct:</strong> set the DISTINCT flag if and only if this is true.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new Union expression.</p>
</blockquote>
</div>
</div>
<div id="Unionable.intersect" class="classattr">
<input id="Unionable.intersect-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">intersect</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Unionable">sqlglot.expressions.Unionable</a></span>:</span></span>
<label class="view-source-button" for="Unionable.intersect-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Unionable.intersect"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.intersect-914"><a href="#Unionable.intersect-914"><span class="linenos">914</span></a> <span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
</span><span id="Unionable.intersect-915"><a href="#Unionable.intersect-915"><span class="linenos">915</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Unionable.intersect-916"><a href="#Unionable.intersect-916"><span class="linenos">916</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
</span><span id="Unionable.intersect-917"><a href="#Unionable.intersect-917"><span class="linenos">917</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Unionable.intersect-918"><a href="#Unionable.intersect-918"><span class="linenos">918</span></a><span class="sd"> Builds an INTERSECT expression.</span>
</span><span id="Unionable.intersect-919"><a href="#Unionable.intersect-919"><span class="linenos">919</span></a>
</span><span id="Unionable.intersect-920"><a href="#Unionable.intersect-920"><span class="linenos">920</span></a><span class="sd"> Example:</span>
</span><span id="Unionable.intersect-921"><a href="#Unionable.intersect-921"><span class="linenos">921</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="Unionable.intersect-922"><a href="#Unionable.intersect-922"><span class="linenos">922</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).intersect(&quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="Unionable.intersect-923"><a href="#Unionable.intersect-923"><span class="linenos">923</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
</span><span id="Unionable.intersect-924"><a href="#Unionable.intersect-924"><span class="linenos">924</span></a>
</span><span id="Unionable.intersect-925"><a href="#Unionable.intersect-925"><span class="linenos">925</span></a><span class="sd"> Args:</span>
</span><span id="Unionable.intersect-926"><a href="#Unionable.intersect-926"><span class="linenos">926</span></a><span class="sd"> expression: the SQL code string.</span>
</span><span id="Unionable.intersect-927"><a href="#Unionable.intersect-927"><span class="linenos">927</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Unionable.intersect-928"><a href="#Unionable.intersect-928"><span class="linenos">928</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="Unionable.intersect-929"><a href="#Unionable.intersect-929"><span class="linenos">929</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Unionable.intersect-930"><a href="#Unionable.intersect-930"><span class="linenos">930</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Unionable.intersect-931"><a href="#Unionable.intersect-931"><span class="linenos">931</span></a>
</span><span id="Unionable.intersect-932"><a href="#Unionable.intersect-932"><span class="linenos">932</span></a><span class="sd"> Returns:</span>
</span><span id="Unionable.intersect-933"><a href="#Unionable.intersect-933"><span class="linenos">933</span></a><span class="sd"> The new Intersect expression.</span>
</span><span id="Unionable.intersect-934"><a href="#Unionable.intersect-934"><span class="linenos">934</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Unionable.intersect-935"><a href="#Unionable.intersect-935"><span class="linenos">935</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Builds an INTERSECT expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">sqlglot</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n"><a href="../sqlglot.html#parse_one">sqlglot.parse_one</a></span><span class="p">(</span><span class="s2">&quot;SELECT * FROM foo&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">intersect</span><span class="p">(</span><span class="s2">&quot;SELECT * FROM bla&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> the SQL code string.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>distinct:</strong> set the DISTINCT flag if and only if this is true.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new Intersect expression.</p>
</blockquote>
</div>
</div>
<div id="Unionable.except_" class="classattr">
<input id="Unionable.except_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">except_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Unionable">sqlglot.expressions.Unionable</a></span>:</span></span>
<label class="view-source-button" for="Unionable.except_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Unionable.except_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.except_-937"><a href="#Unionable.except_-937"><span class="linenos">937</span></a> <span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
</span><span id="Unionable.except_-938"><a href="#Unionable.except_-938"><span class="linenos">938</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Unionable.except_-939"><a href="#Unionable.except_-939"><span class="linenos">939</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Unionable</span><span class="p">:</span>
</span><span id="Unionable.except_-940"><a href="#Unionable.except_-940"><span class="linenos">940</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Unionable.except_-941"><a href="#Unionable.except_-941"><span class="linenos">941</span></a><span class="sd"> Builds an EXCEPT expression.</span>
</span><span id="Unionable.except_-942"><a href="#Unionable.except_-942"><span class="linenos">942</span></a>
</span><span id="Unionable.except_-943"><a href="#Unionable.except_-943"><span class="linenos">943</span></a><span class="sd"> Example:</span>
</span><span id="Unionable.except_-944"><a href="#Unionable.except_-944"><span class="linenos">944</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="Unionable.except_-945"><a href="#Unionable.except_-945"><span class="linenos">945</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;SELECT * FROM foo&quot;).except_(&quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="Unionable.except_-946"><a href="#Unionable.except_-946"><span class="linenos">946</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
</span><span id="Unionable.except_-947"><a href="#Unionable.except_-947"><span class="linenos">947</span></a>
</span><span id="Unionable.except_-948"><a href="#Unionable.except_-948"><span class="linenos">948</span></a><span class="sd"> Args:</span>
</span><span id="Unionable.except_-949"><a href="#Unionable.except_-949"><span class="linenos">949</span></a><span class="sd"> expression: the SQL code string.</span>
</span><span id="Unionable.except_-950"><a href="#Unionable.except_-950"><span class="linenos">950</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Unionable.except_-951"><a href="#Unionable.except_-951"><span class="linenos">951</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="Unionable.except_-952"><a href="#Unionable.except_-952"><span class="linenos">952</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Unionable.except_-953"><a href="#Unionable.except_-953"><span class="linenos">953</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Unionable.except_-954"><a href="#Unionable.except_-954"><span class="linenos">954</span></a>
</span><span id="Unionable.except_-955"><a href="#Unionable.except_-955"><span class="linenos">955</span></a><span class="sd"> Returns:</span>
</span><span id="Unionable.except_-956"><a href="#Unionable.except_-956"><span class="linenos">956</span></a><span class="sd"> The new Except expression.</span>
</span><span id="Unionable.except_-957"><a href="#Unionable.except_-957"><span class="linenos">957</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Unionable.except_-958"><a href="#Unionable.except_-958"><span class="linenos">958</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Builds an EXCEPT expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">sqlglot</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n"><a href="../sqlglot.html#parse_one">sqlglot.parse_one</a></span><span class="p">(</span><span class="s2">&quot;SELECT * FROM foo&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">except_</span><span class="p">(</span><span class="s2">&quot;SELECT * FROM bla&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> the SQL code string.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>distinct:</strong> set the DISTINCT flag if and only if this is true.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new Except expression.</p>
</blockquote>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Unionable.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Unionable.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Unionable.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Unionable.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Unionable.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Unionable.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Unionable.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Unionable.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Unionable.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Unionable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Unionable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Unionable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Unionable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Unionable.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Unionable.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Unionable.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Unionable.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Unionable.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Unionable.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Unionable.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Unionable.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Unionable.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Unionable.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Unionable.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Unionable.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Unionable.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Unionable.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Unionable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Unionable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Unionable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Unionable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Unionable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Unionable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Unionable.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Unionable.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Unionable.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Unionable.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Unionable.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="UDTF">
<input id="UDTF-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">UDTF</span><wbr>(<span class="base"><a href="#DerivedTable">DerivedTable</a></span>, <span class="base"><a href="#Unionable">Unionable</a></span>):
<label class="view-source-button" for="UDTF-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#UDTF"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="UDTF-961"><a href="#UDTF-961"><span class="linenos">961</span></a><span class="k">class</span> <span class="nc">UDTF</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</span><span class="p">):</span>
</span><span id="UDTF-962"><a href="#UDTF-962"><span class="linenos">962</span></a> <span class="nd">@property</span>
</span><span id="UDTF-963"><a href="#UDTF-963"><span class="linenos">963</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="UDTF-964"><a href="#UDTF-964"><span class="linenos">964</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</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;alias&quot;</span><span class="p">)</span>
</span><span id="UDTF-965"><a href="#UDTF-965"><span class="linenos">965</span></a> <span class="k">return</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="p">[]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="UDTF.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="UDTF.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="UDTF.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="UDTF.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="UDTF.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="UDTF.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="UDTF.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="UDTF.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UDTF.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UDTF.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UDTF.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UDTF.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UDTF.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="UDTF.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UDTF.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UDTF.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="UDTF.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="UDTF.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="UDTF.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="UDTF.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="UDTF.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="UDTF.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="UDTF.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="UDTF.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="UDTF.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="UDTF.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="UDTF.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="UDTF.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UDTF.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UDTF.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="UDTF.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UDTF.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UDTF.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="UDTF.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="UDTF.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="UDTF.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="UDTF.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="UDTF.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
<dd id="UDTF.union" class="function"><a href="#Unionable.union">union</a></dd>
<dd id="UDTF.intersect" class="function"><a href="#Unionable.intersect">intersect</a></dd>
<dd id="UDTF.except_" class="function"><a href="#Unionable.except_">except_</a></dd>
</div>
</dl>
</div>
</section>
<section id="Cache">
<input id="Cache-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Cache</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Cache-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Cache"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Cache-968"><a href="#Cache-968"><span class="linenos">968</span></a><span class="k">class</span> <span class="nc">Cache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Cache-969"><a href="#Cache-969"><span class="linenos">969</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Cache-970"><a href="#Cache-970"><span class="linenos">970</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Cache-971"><a href="#Cache-971"><span class="linenos">971</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Cache-972"><a href="#Cache-972"><span class="linenos">972</span></a> <span class="s2">&quot;lazy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Cache-973"><a href="#Cache-973"><span class="linenos">973</span></a> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Cache-974"><a href="#Cache-974"><span class="linenos">974</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Cache-975"><a href="#Cache-975"><span class="linenos">975</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Cache.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Cache.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Cache.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Cache.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Cache.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Cache.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Cache.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Cache.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Cache.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Cache.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Cache.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Cache.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Cache.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Cache.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Cache.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Cache.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Cache.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Cache.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Cache.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Cache.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Cache.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Cache.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Cache.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Cache.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Cache.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Cache.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Cache.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Cache.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Cache.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Cache.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Cache.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Cache.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Cache.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Cache.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Cache.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Cache.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Cache.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Cache.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Uncache">
<input id="Uncache-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Uncache</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Uncache-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Uncache"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Uncache-978"><a href="#Uncache-978"><span class="linenos">978</span></a><span class="k">class</span> <span class="nc">Uncache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Uncache-979"><a href="#Uncache-979"><span class="linenos">979</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Uncache.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Uncache.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Uncache.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Uncache.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Uncache.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Uncache.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Uncache.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Uncache.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Uncache.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Uncache.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Uncache.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Uncache.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Uncache.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Uncache.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Uncache.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Uncache.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Uncache.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Uncache.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Uncache.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Uncache.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Uncache.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Uncache.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Uncache.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Uncache.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Uncache.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Uncache.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Uncache.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Uncache.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Uncache.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Uncache.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Uncache.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Uncache.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Uncache.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Uncache.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Uncache.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Uncache.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Uncache.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Uncache.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Create">
<input id="Create-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Create</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Create-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Create"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Create-982"><a href="#Create-982"><span class="linenos">982</span></a><span class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Create-983"><a href="#Create-983"><span class="linenos">983</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Create-984"><a href="#Create-984"><span class="linenos">984</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Create-985"><a href="#Create-985"><span class="linenos">985</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Create-986"><a href="#Create-986"><span class="linenos">986</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Create-987"><a href="#Create-987"><span class="linenos">987</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Create-988"><a href="#Create-988"><span class="linenos">988</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Create-989"><a href="#Create-989"><span class="linenos">989</span></a> <span class="s2">&quot;properties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Create-990"><a href="#Create-990"><span class="linenos">990</span></a> <span class="s2">&quot;replace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Create-991"><a href="#Create-991"><span class="linenos">991</span></a> <span class="s2">&quot;unique&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Create-992"><a href="#Create-992"><span class="linenos">992</span></a> <span class="s2">&quot;indexes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Create-993"><a href="#Create-993"><span class="linenos">993</span></a> <span class="s2">&quot;no_schema_binding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Create-994"><a href="#Create-994"><span class="linenos">994</span></a> <span class="s2">&quot;begin&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Create-995"><a href="#Create-995"><span class="linenos">995</span></a> <span class="s2">&quot;clone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Create-996"><a href="#Create-996"><span class="linenos">996</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Create.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Create.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Create.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Create.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Create.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Create.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Create.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Create.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Create.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Create.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Create.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Create.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Create.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Create.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Create.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Create.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Create.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Create.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Create.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Create.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Create.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Create.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Create.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Create.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Create.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Create.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Create.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Create.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Create.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Create.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Create.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Create.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Create.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Create.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Create.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Create.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Create.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Create.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Clone">
<input id="Clone-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Clone</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Clone-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Clone"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Clone-1000"><a href="#Clone-1000"><span class="linenos">1000</span></a><span class="k">class</span> <span class="nc">Clone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Clone-1001"><a href="#Clone-1001"><span class="linenos">1001</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Clone-1002"><a href="#Clone-1002"><span class="linenos">1002</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Clone-1003"><a href="#Clone-1003"><span class="linenos">1003</span></a> <span class="s2">&quot;when&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Clone-1004"><a href="#Clone-1004"><span class="linenos">1004</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Clone-1005"><a href="#Clone-1005"><span class="linenos">1005</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Clone-1006"><a href="#Clone-1006"><span class="linenos">1006</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Clone.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Clone.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Clone.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Clone.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Clone.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Clone.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Clone.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Clone.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Clone.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Clone.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Clone.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Clone.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Clone.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Clone.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Clone.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Clone.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Clone.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Clone.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Clone.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Clone.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Clone.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Clone.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Clone.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Clone.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Clone.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Clone.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Clone.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Clone.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Clone.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Clone.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Clone.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Clone.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Clone.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Clone.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Clone.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Clone.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Clone.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Clone.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Describe">
<input id="Describe-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Describe</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Describe-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Describe"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Describe-1009"><a href="#Describe-1009"><span class="linenos">1009</span></a><span class="k">class</span> <span class="nc">Describe</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Describe-1010"><a href="#Describe-1010"><span class="linenos">1010</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Describe.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Describe.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Describe.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Describe.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Describe.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Describe.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Describe.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Describe.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Describe.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Describe.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Describe.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Describe.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Describe.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Describe.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Describe.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Describe.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Describe.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Describe.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Describe.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Describe.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Describe.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Describe.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Describe.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Describe.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Describe.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Describe.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Describe.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Describe.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Describe.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Describe.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Describe.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Describe.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Describe.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Describe.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Describe.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Describe.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Describe.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Describe.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Pragma">
<input id="Pragma-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Pragma</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Pragma-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Pragma"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Pragma-1013"><a href="#Pragma-1013"><span class="linenos">1013</span></a><span class="k">class</span> <span class="nc">Pragma</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Pragma-1014"><a href="#Pragma-1014"><span class="linenos">1014</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Pragma.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Pragma.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Pragma.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Pragma.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Pragma.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Pragma.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Pragma.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Pragma.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Pragma.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Pragma.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Pragma.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Pragma.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Pragma.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Pragma.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Pragma.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Pragma.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Pragma.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Pragma.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Pragma.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Pragma.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Pragma.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Pragma.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Pragma.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Pragma.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Pragma.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Pragma.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Pragma.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Pragma.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Pragma.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Pragma.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Pragma.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Pragma.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Pragma.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Pragma.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Pragma.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Pragma.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Pragma.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Pragma.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Set">
<input id="Set-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Set</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Set-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Set"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Set-1017"><a href="#Set-1017"><span class="linenos">1017</span></a><span class="k">class</span> <span class="nc">Set</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Set-1018"><a href="#Set-1018"><span class="linenos">1018</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Set.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Set.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Set.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Set.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Set.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Set.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Set.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Set.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Set.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Set.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Set.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Set.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Set.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Set.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Set.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Set.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Set.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Set.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Set.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Set.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Set.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Set.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Set.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Set.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Set.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Set.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Set.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Set.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Set.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Set.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Set.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Set.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Set.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Set.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Set.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Set.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Set.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Set.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="SetItem">
<input id="SetItem-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SetItem</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="SetItem-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SetItem"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SetItem-1021"><a href="#SetItem-1021"><span class="linenos">1021</span></a><span class="k">class</span> <span class="nc">SetItem</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="SetItem-1022"><a href="#SetItem-1022"><span class="linenos">1022</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="SetItem-1023"><a href="#SetItem-1023"><span class="linenos">1023</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="SetItem-1024"><a href="#SetItem-1024"><span class="linenos">1024</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="SetItem-1025"><a href="#SetItem-1025"><span class="linenos">1025</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="SetItem-1026"><a href="#SetItem-1026"><span class="linenos">1026</span></a> <span class="s2">&quot;collate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># MySQL SET NAMES statement</span>
</span><span id="SetItem-1027"><a href="#SetItem-1027"><span class="linenos">1027</span></a> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="SetItem-1028"><a href="#SetItem-1028"><span class="linenos">1028</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SetItem.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SetItem.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SetItem.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SetItem.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SetItem.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SetItem.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SetItem.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SetItem.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SetItem.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SetItem.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SetItem.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SetItem.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SetItem.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SetItem.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SetItem.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SetItem.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SetItem.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SetItem.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SetItem.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SetItem.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SetItem.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SetItem.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SetItem.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SetItem.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SetItem.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SetItem.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SetItem.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SetItem.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SetItem.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SetItem.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SetItem.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SetItem.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SetItem.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SetItem.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SetItem.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SetItem.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SetItem.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SetItem.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Show">
<input id="Show-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Show</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Show-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Show"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Show-1031"><a href="#Show-1031"><span class="linenos">1031</span></a><span class="k">class</span> <span class="nc">Show</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Show-1032"><a href="#Show-1032"><span class="linenos">1032</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Show-1033"><a href="#Show-1033"><span class="linenos">1033</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Show-1034"><a href="#Show-1034"><span class="linenos">1034</span></a> <span class="s2">&quot;target&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1035"><a href="#Show-1035"><span class="linenos">1035</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1036"><a href="#Show-1036"><span class="linenos">1036</span></a> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1037"><a href="#Show-1037"><span class="linenos">1037</span></a> <span class="s2">&quot;like&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1038"><a href="#Show-1038"><span class="linenos">1038</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1039"><a href="#Show-1039"><span class="linenos">1039</span></a> <span class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1040"><a href="#Show-1040"><span class="linenos">1040</span></a> <span class="s2">&quot;full&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1041"><a href="#Show-1041"><span class="linenos">1041</span></a> <span class="s2">&quot;mutex&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1042"><a href="#Show-1042"><span class="linenos">1042</span></a> <span class="s2">&quot;query&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1043"><a href="#Show-1043"><span class="linenos">1043</span></a> <span class="s2">&quot;channel&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1044"><a href="#Show-1044"><span class="linenos">1044</span></a> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1045"><a href="#Show-1045"><span class="linenos">1045</span></a> <span class="s2">&quot;log&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1046"><a href="#Show-1046"><span class="linenos">1046</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1047"><a href="#Show-1047"><span class="linenos">1047</span></a> <span class="s2">&quot;types&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Show-1048"><a href="#Show-1048"><span class="linenos">1048</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Show.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Show.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Show.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Show.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Show.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Show.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Show.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Show.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Show.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Show.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Show.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Show.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Show.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Show.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Show.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Show.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Show.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Show.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Show.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Show.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Show.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Show.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Show.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Show.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Show.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Show.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Show.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Show.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Show.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Show.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Show.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Show.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Show.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Show.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Show.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Show.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Show.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Show.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="UserDefinedFunction">
<input id="UserDefinedFunction-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">UserDefinedFunction</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="UserDefinedFunction-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#UserDefinedFunction"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="UserDefinedFunction-1051"><a href="#UserDefinedFunction-1051"><span class="linenos">1051</span></a><span class="k">class</span> <span class="nc">UserDefinedFunction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="UserDefinedFunction-1052"><a href="#UserDefinedFunction-1052"><span class="linenos">1052</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="UserDefinedFunction.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="UserDefinedFunction.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="UserDefinedFunction.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="UserDefinedFunction.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="UserDefinedFunction.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="UserDefinedFunction.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="UserDefinedFunction.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="UserDefinedFunction.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UserDefinedFunction.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UserDefinedFunction.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UserDefinedFunction.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UserDefinedFunction.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UserDefinedFunction.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="UserDefinedFunction.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UserDefinedFunction.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UserDefinedFunction.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="UserDefinedFunction.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="UserDefinedFunction.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="UserDefinedFunction.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="UserDefinedFunction.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="UserDefinedFunction.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="UserDefinedFunction.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="UserDefinedFunction.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="UserDefinedFunction.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="UserDefinedFunction.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="UserDefinedFunction.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="UserDefinedFunction.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="UserDefinedFunction.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UserDefinedFunction.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UserDefinedFunction.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="UserDefinedFunction.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UserDefinedFunction.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UserDefinedFunction.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="UserDefinedFunction.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="UserDefinedFunction.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="UserDefinedFunction.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="UserDefinedFunction.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="UserDefinedFunction.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="CharacterSet">
<input id="CharacterSet-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CharacterSet</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="CharacterSet-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CharacterSet"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CharacterSet-1055"><a href="#CharacterSet-1055"><span class="linenos">1055</span></a><span class="k">class</span> <span class="nc">CharacterSet</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="CharacterSet-1056"><a href="#CharacterSet-1056"><span class="linenos">1056</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CharacterSet.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CharacterSet.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CharacterSet.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CharacterSet.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CharacterSet.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CharacterSet.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CharacterSet.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CharacterSet.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CharacterSet.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CharacterSet.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CharacterSet.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CharacterSet.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CharacterSet.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CharacterSet.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CharacterSet.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CharacterSet.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CharacterSet.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CharacterSet.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CharacterSet.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CharacterSet.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CharacterSet.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CharacterSet.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CharacterSet.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CharacterSet.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CharacterSet.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CharacterSet.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CharacterSet.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CharacterSet.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CharacterSet.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CharacterSet.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CharacterSet.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CharacterSet.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CharacterSet.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CharacterSet.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CharacterSet.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CharacterSet.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CharacterSet.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CharacterSet.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="With">
<input id="With-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">With</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="With-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#With"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="With-1059"><a href="#With-1059"><span class="linenos">1059</span></a><span class="k">class</span> <span class="nc">With</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="With-1060"><a href="#With-1060"><span class="linenos">1060</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;recursive&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="With-1061"><a href="#With-1061"><span class="linenos">1061</span></a>
</span><span id="With-1062"><a href="#With-1062"><span class="linenos">1062</span></a> <span class="nd">@property</span>
</span><span id="With-1063"><a href="#With-1063"><span class="linenos">1063</span></a> <span class="k">def</span> <span class="nf">recursive</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="With-1064"><a href="#With-1064"><span class="linenos">1064</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</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;recursive&quot;</span><span class="p">))</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="With.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="With.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="With.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="With.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="With.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="With.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="With.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="With.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="With.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="With.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="With.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="With.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="With.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="With.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="With.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="With.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="With.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="With.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="With.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="With.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="With.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="With.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="With.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="With.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="With.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="With.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="With.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="With.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="With.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="With.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="With.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="With.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="With.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="With.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="With.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="With.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="With.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="With.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="WithinGroup">
<input id="WithinGroup-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">WithinGroup</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="WithinGroup-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#WithinGroup"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="WithinGroup-1067"><a href="#WithinGroup-1067"><span class="linenos">1067</span></a><span class="k">class</span> <span class="nc">WithinGroup</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="WithinGroup-1068"><a href="#WithinGroup-1068"><span class="linenos">1068</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="WithinGroup.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="WithinGroup.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="WithinGroup.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="WithinGroup.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="WithinGroup.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="WithinGroup.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="WithinGroup.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="WithinGroup.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="WithinGroup.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="WithinGroup.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="WithinGroup.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="WithinGroup.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="WithinGroup.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="WithinGroup.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="WithinGroup.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="WithinGroup.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="WithinGroup.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="WithinGroup.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="WithinGroup.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="WithinGroup.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="WithinGroup.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="WithinGroup.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="WithinGroup.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="WithinGroup.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="WithinGroup.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="WithinGroup.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="WithinGroup.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="WithinGroup.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="WithinGroup.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="WithinGroup.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="WithinGroup.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="WithinGroup.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="WithinGroup.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="WithinGroup.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="WithinGroup.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="WithinGroup.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="WithinGroup.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="WithinGroup.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="CTE">
<input id="CTE-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CTE</span><wbr>(<span class="base"><a href="#DerivedTable">DerivedTable</a></span>):
<label class="view-source-button" for="CTE-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CTE"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CTE-1071"><a href="#CTE-1071"><span class="linenos">1071</span></a><span class="k">class</span> <span class="nc">CTE</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">):</span>
</span><span id="CTE-1072"><a href="#CTE-1072"><span class="linenos">1072</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CTE.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CTE.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CTE.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CTE.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CTE.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CTE.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CTE.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CTE.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CTE.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CTE.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CTE.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CTE.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CTE.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CTE.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CTE.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CTE.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CTE.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CTE.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CTE.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CTE.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CTE.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CTE.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CTE.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CTE.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CTE.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CTE.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CTE.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CTE.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CTE.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CTE.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CTE.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CTE.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CTE.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CTE.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CTE.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CTE.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CTE.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CTE.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="TableAlias">
<input id="TableAlias-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TableAlias</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="TableAlias-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TableAlias"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TableAlias-1075"><a href="#TableAlias-1075"><span class="linenos">1075</span></a><span class="k">class</span> <span class="nc">TableAlias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="TableAlias-1076"><a href="#TableAlias-1076"><span class="linenos">1076</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="TableAlias-1077"><a href="#TableAlias-1077"><span class="linenos">1077</span></a>
</span><span id="TableAlias-1078"><a href="#TableAlias-1078"><span class="linenos">1078</span></a> <span class="nd">@property</span>
</span><span id="TableAlias-1079"><a href="#TableAlias-1079"><span class="linenos">1079</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="TableAlias-1080"><a href="#TableAlias-1080"><span class="linenos">1080</span></a> <span class="k">return</span> <span class="bp">self</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;columns&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TableAlias.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TableAlias.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TableAlias.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TableAlias.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TableAlias.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TableAlias.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TableAlias.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TableAlias.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TableAlias.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TableAlias.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TableAlias.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TableAlias.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TableAlias.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TableAlias.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TableAlias.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TableAlias.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TableAlias.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TableAlias.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TableAlias.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TableAlias.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TableAlias.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TableAlias.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TableAlias.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TableAlias.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TableAlias.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TableAlias.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TableAlias.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TableAlias.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TableAlias.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TableAlias.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TableAlias.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TableAlias.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TableAlias.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TableAlias.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TableAlias.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TableAlias.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TableAlias.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TableAlias.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="BitString">
<input id="BitString-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">BitString</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
<label class="view-source-button" for="BitString-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#BitString"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="BitString-1083"><a href="#BitString-1083"><span class="linenos">1083</span></a><span class="k">class</span> <span class="nc">BitString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="BitString-1084"><a href="#BitString-1084"><span class="linenos">1084</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="BitString.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="BitString.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="BitString.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="BitString.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="BitString.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="BitString.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="BitString.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="BitString.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitString.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitString.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitString.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitString.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitString.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="BitString.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitString.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitString.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="BitString.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="BitString.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="BitString.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="BitString.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="BitString.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="BitString.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="BitString.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="BitString.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="BitString.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="BitString.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="BitString.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="BitString.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitString.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitString.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="BitString.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitString.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitString.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="BitString.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="BitString.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="BitString.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="BitString.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="BitString.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="BitString.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitString.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitString.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="BitString.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitString.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitString.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="BitString.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitString.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitString.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitString.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="BitString.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="BitString.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="HexString">
<input id="HexString-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">HexString</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
<label class="view-source-button" for="HexString-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#HexString"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="HexString-1087"><a href="#HexString-1087"><span class="linenos">1087</span></a><span class="k">class</span> <span class="nc">HexString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="HexString-1088"><a href="#HexString-1088"><span class="linenos">1088</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="HexString.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="HexString.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="HexString.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="HexString.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="HexString.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="HexString.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="HexString.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="HexString.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="HexString.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="HexString.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="HexString.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="HexString.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="HexString.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="HexString.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="HexString.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="HexString.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="HexString.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="HexString.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="HexString.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="HexString.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="HexString.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="HexString.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="HexString.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="HexString.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="HexString.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="HexString.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="HexString.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="HexString.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="HexString.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="HexString.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="HexString.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="HexString.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="HexString.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="HexString.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="HexString.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="HexString.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="HexString.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="HexString.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="HexString.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="HexString.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="HexString.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="HexString.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="HexString.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="HexString.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="HexString.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="HexString.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="HexString.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="HexString.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="HexString.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="HexString.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ByteString">
<input id="ByteString-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ByteString</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
<label class="view-source-button" for="ByteString-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ByteString"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ByteString-1091"><a href="#ByteString-1091"><span class="linenos">1091</span></a><span class="k">class</span> <span class="nc">ByteString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="ByteString-1092"><a href="#ByteString-1092"><span class="linenos">1092</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ByteString.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ByteString.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ByteString.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ByteString.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ByteString.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ByteString.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ByteString.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ByteString.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ByteString.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ByteString.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ByteString.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ByteString.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ByteString.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ByteString.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ByteString.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ByteString.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ByteString.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ByteString.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ByteString.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ByteString.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ByteString.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ByteString.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ByteString.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ByteString.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ByteString.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ByteString.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ByteString.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ByteString.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ByteString.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ByteString.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ByteString.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ByteString.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ByteString.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ByteString.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ByteString.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ByteString.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ByteString.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ByteString.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ByteString.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ByteString.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ByteString.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ByteString.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ByteString.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ByteString.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ByteString.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ByteString.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ByteString.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ByteString.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ByteString.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ByteString.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="RawString">
<input id="RawString-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">RawString</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
<label class="view-source-button" for="RawString-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#RawString"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="RawString-1095"><a href="#RawString-1095"><span class="linenos">1095</span></a><span class="k">class</span> <span class="nc">RawString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="RawString-1096"><a href="#RawString-1096"><span class="linenos">1096</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="RawString.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="RawString.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="RawString.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="RawString.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="RawString.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="RawString.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="RawString.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="RawString.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RawString.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RawString.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RawString.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RawString.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RawString.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="RawString.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RawString.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RawString.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="RawString.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="RawString.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="RawString.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="RawString.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="RawString.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="RawString.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="RawString.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="RawString.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="RawString.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="RawString.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="RawString.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="RawString.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RawString.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RawString.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="RawString.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RawString.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RawString.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="RawString.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="RawString.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="RawString.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="RawString.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="RawString.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="RawString.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="RawString.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="RawString.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="RawString.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="RawString.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="RawString.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="RawString.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="RawString.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="RawString.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="RawString.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="RawString.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="RawString.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Column">
<input id="Column-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Column</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
<label class="view-source-button" for="Column-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Column"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Column-1099"><a href="#Column-1099"><span class="linenos">1099</span></a><span class="k">class</span> <span class="nc">Column</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="Column-1100"><a href="#Column-1100"><span class="linenos">1100</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;join_mark&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Column-1101"><a href="#Column-1101"><span class="linenos">1101</span></a>
</span><span id="Column-1102"><a href="#Column-1102"><span class="linenos">1102</span></a> <span class="nd">@property</span>
</span><span id="Column-1103"><a href="#Column-1103"><span class="linenos">1103</span></a> <span class="k">def</span> <span class="nf">table</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Column-1104"><a href="#Column-1104"><span class="linenos">1104</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;table&quot;</span><span class="p">)</span>
</span><span id="Column-1105"><a href="#Column-1105"><span class="linenos">1105</span></a>
</span><span id="Column-1106"><a href="#Column-1106"><span class="linenos">1106</span></a> <span class="nd">@property</span>
</span><span id="Column-1107"><a href="#Column-1107"><span class="linenos">1107</span></a> <span class="k">def</span> <span class="nf">db</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Column-1108"><a href="#Column-1108"><span class="linenos">1108</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">)</span>
</span><span id="Column-1109"><a href="#Column-1109"><span class="linenos">1109</span></a>
</span><span id="Column-1110"><a href="#Column-1110"><span class="linenos">1110</span></a> <span class="nd">@property</span>
</span><span id="Column-1111"><a href="#Column-1111"><span class="linenos">1111</span></a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Column-1112"><a href="#Column-1112"><span class="linenos">1112</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">)</span>
</span><span id="Column-1113"><a href="#Column-1113"><span class="linenos">1113</span></a>
</span><span id="Column-1114"><a href="#Column-1114"><span class="linenos">1114</span></a> <span class="nd">@property</span>
</span><span id="Column-1115"><a href="#Column-1115"><span class="linenos">1115</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Column-1116"><a href="#Column-1116"><span class="linenos">1116</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span><span id="Column-1117"><a href="#Column-1117"><span class="linenos">1117</span></a>
</span><span id="Column-1118"><a href="#Column-1118"><span class="linenos">1118</span></a> <span class="nd">@property</span>
</span><span id="Column-1119"><a href="#Column-1119"><span class="linenos">1119</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Identifier</span><span class="p">]:</span>
</span><span id="Column-1120"><a href="#Column-1120"><span class="linenos">1120</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a column in order catalog, db, table, name.&quot;&quot;&quot;</span>
</span><span id="Column-1121"><a href="#Column-1121"><span class="linenos">1121</span></a> <span class="k">return</span> <span class="p">[</span>
</span><span id="Column-1122"><a href="#Column-1122"><span class="linenos">1122</span></a> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">part</span><span class="p">])</span>
</span><span id="Column-1123"><a href="#Column-1123"><span class="linenos">1123</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
</span><span id="Column-1124"><a href="#Column-1124"><span class="linenos">1124</span></a> <span class="k">if</span> <span class="bp">self</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="n">part</span><span class="p">)</span>
</span><span id="Column-1125"><a href="#Column-1125"><span class="linenos">1125</span></a> <span class="p">]</span>
</span><span id="Column-1126"><a href="#Column-1126"><span class="linenos">1126</span></a>
</span><span id="Column-1127"><a href="#Column-1127"><span class="linenos">1127</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
</span><span id="Column-1128"><a href="#Column-1128"><span class="linenos">1128</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Converts the column into a dot expression.&quot;&quot;&quot;</span>
</span><span id="Column-1129"><a href="#Column-1129"><span class="linenos">1129</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parts</span>
</span><span id="Column-1130"><a href="#Column-1130"><span class="linenos">1130</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Column-1131"><a href="#Column-1131"><span class="linenos">1131</span></a>
</span><span id="Column-1132"><a href="#Column-1132"><span class="linenos">1132</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
</span><span id="Column-1133"><a href="#Column-1133"><span class="linenos">1133</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
</span><span id="Column-1134"><a href="#Column-1134"><span class="linenos">1134</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parent</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span>
</span><span id="Column-1135"><a href="#Column-1135"><span class="linenos">1135</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Column-1136"><a href="#Column-1136"><span class="linenos">1136</span></a>
</span><span id="Column-1137"><a href="#Column-1137"><span class="linenos">1137</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
</span></pre></div>
<div id="Column.output_name" class="classattr">
<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
</div>
<a class="headerlink" href="#Column.output_name"></a>
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT a&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;a&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT b AS c&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;c&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT 1 + 2&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;&#39;</span>
</code></pre>
</div>
</blockquote>
</div>
</div>
<div id="Column.parts" class="classattr">
<div class="attr variable">
<span class="name">parts</span><span class="annotation">: List[<a href="#Identifier">sqlglot.expressions.Identifier</a>]</span>
</div>
<a class="headerlink" href="#Column.parts"></a>
<div class="docstring"><p>Return the parts of a column in order catalog, db, table, name.</p>
</div>
</div>
<div id="Column.to_dot" class="classattr">
<input id="Column.to_dot-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">to_dot</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">) -> <span class="n"><a href="#Dot">sqlglot.expressions.Dot</a></span>:</span></span>
<label class="view-source-button" for="Column.to_dot-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Column.to_dot"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Column.to_dot-1127"><a href="#Column.to_dot-1127"><span class="linenos">1127</span></a> <span class="k">def</span> <span class="nf">to_dot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
</span><span id="Column.to_dot-1128"><a href="#Column.to_dot-1128"><span class="linenos">1128</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Converts the column into a dot expression.&quot;&quot;&quot;</span>
</span><span id="Column.to_dot-1129"><a href="#Column.to_dot-1129"><span class="linenos">1129</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parts</span>
</span><span id="Column.to_dot-1130"><a href="#Column.to_dot-1130"><span class="linenos">1130</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Column.to_dot-1131"><a href="#Column.to_dot-1131"><span class="linenos">1131</span></a>
</span><span id="Column.to_dot-1132"><a href="#Column.to_dot-1132"><span class="linenos">1132</span></a> <span class="k">while</span> <span class="n">parent</span><span class="p">:</span>
</span><span id="Column.to_dot-1133"><a href="#Column.to_dot-1133"><span class="linenos">1133</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</span> <span class="n">Dot</span><span class="p">):</span>
</span><span id="Column.to_dot-1134"><a href="#Column.to_dot-1134"><span class="linenos">1134</span></a> <span class="n">parts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parent</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span>
</span><span id="Column.to_dot-1135"><a href="#Column.to_dot-1135"><span class="linenos">1135</span></a> <span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span><span class="o">.</span><span class="n">parent</span>
</span><span id="Column.to_dot-1136"><a href="#Column.to_dot-1136"><span class="linenos">1136</span></a>
</span><span id="Column.to_dot-1137"><a href="#Column.to_dot-1137"><span class="linenos">1137</span></a> <span class="k">return</span> <span class="n">Dot</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Converts the column into a dot expression.</p>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Column.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Column.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Column.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Column.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Column.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Column.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Column.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Column.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Column.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Column.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Column.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Column.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Column.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Column.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Column.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Column.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Column.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Column.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Column.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Column.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Column.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Column.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Column.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Column.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Column.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Column.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Column.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Column.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Column.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Column.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Column.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Column.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Column.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Column.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Column.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Column.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Column.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Column.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Column.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Column.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Column.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Column.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Column.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Column.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Column.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Column.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Column.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Column.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Column.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ColumnPosition">
<input id="ColumnPosition-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ColumnPosition</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="ColumnPosition-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ColumnPosition"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ColumnPosition-1140"><a href="#ColumnPosition-1140"><span class="linenos">1140</span></a><span class="k">class</span> <span class="nc">ColumnPosition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="ColumnPosition-1141"><a href="#ColumnPosition-1141"><span class="linenos">1141</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ColumnPosition.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ColumnPosition.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ColumnPosition.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ColumnPosition.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ColumnPosition.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ColumnPosition.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ColumnPosition.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ColumnPosition.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ColumnPosition.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ColumnPosition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ColumnPosition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ColumnPosition.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ColumnPosition.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ColumnPosition.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ColumnPosition.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ColumnPosition.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ColumnPosition.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ColumnPosition.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ColumnPosition.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ColumnPosition.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ColumnPosition.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ColumnPosition.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ColumnPosition.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ColumnPosition.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ColumnPosition.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ColumnPosition.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ColumnPosition.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ColumnPosition.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ColumnPosition.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ColumnPosition.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ColumnPosition.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ColumnPosition.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ColumnPosition.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ColumnPosition.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ColumnPosition.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ColumnPosition.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ColumnPosition.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ColumnPosition.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="ColumnDef">
<input id="ColumnDef-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ColumnDef</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="ColumnDef-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ColumnDef"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ColumnDef-1144"><a href="#ColumnDef-1144"><span class="linenos">1144</span></a><span class="k">class</span> <span class="nc">ColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="ColumnDef-1145"><a href="#ColumnDef-1145"><span class="linenos">1145</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="ColumnDef-1146"><a href="#ColumnDef-1146"><span class="linenos">1146</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="ColumnDef-1147"><a href="#ColumnDef-1147"><span class="linenos">1147</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="ColumnDef-1148"><a href="#ColumnDef-1148"><span class="linenos">1148</span></a> <span class="s2">&quot;constraints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="ColumnDef-1149"><a href="#ColumnDef-1149"><span class="linenos">1149</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="ColumnDef-1150"><a href="#ColumnDef-1150"><span class="linenos">1150</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="ColumnDef-1151"><a href="#ColumnDef-1151"><span class="linenos">1151</span></a> <span class="p">}</span>
</span><span id="ColumnDef-1152"><a href="#ColumnDef-1152"><span class="linenos">1152</span></a>
</span><span id="ColumnDef-1153"><a href="#ColumnDef-1153"><span class="linenos">1153</span></a> <span class="nd">@property</span>
</span><span id="ColumnDef-1154"><a href="#ColumnDef-1154"><span class="linenos">1154</span></a> <span class="k">def</span> <span class="nf">constraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">ColumnConstraint</span><span class="p">]:</span>
</span><span id="ColumnDef-1155"><a href="#ColumnDef-1155"><span class="linenos">1155</span></a> <span class="k">return</span> <span class="bp">self</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;constraints&quot;</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ColumnDef.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ColumnDef.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ColumnDef.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ColumnDef.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ColumnDef.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ColumnDef.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ColumnDef.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ColumnDef.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ColumnDef.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ColumnDef.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ColumnDef.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ColumnDef.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ColumnDef.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ColumnDef.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ColumnDef.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ColumnDef.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ColumnDef.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ColumnDef.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ColumnDef.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ColumnDef.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ColumnDef.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ColumnDef.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ColumnDef.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ColumnDef.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ColumnDef.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ColumnDef.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ColumnDef.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ColumnDef.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ColumnDef.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ColumnDef.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ColumnDef.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ColumnDef.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ColumnDef.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ColumnDef.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ColumnDef.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ColumnDef.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ColumnDef.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ColumnDef.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="AlterColumn">
<input id="AlterColumn-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">AlterColumn</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="AlterColumn-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#AlterColumn"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="AlterColumn-1158"><a href="#AlterColumn-1158"><span class="linenos">1158</span></a><span class="k">class</span> <span class="nc">AlterColumn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="AlterColumn-1159"><a href="#AlterColumn-1159"><span class="linenos">1159</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="AlterColumn-1160"><a href="#AlterColumn-1160"><span class="linenos">1160</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="AlterColumn-1161"><a href="#AlterColumn-1161"><span class="linenos">1161</span></a> <span class="s2">&quot;dtype&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="AlterColumn-1162"><a href="#AlterColumn-1162"><span class="linenos">1162</span></a> <span class="s2">&quot;collate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="AlterColumn-1163"><a href="#AlterColumn-1163"><span class="linenos">1163</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="AlterColumn-1164"><a href="#AlterColumn-1164"><span class="linenos">1164</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="AlterColumn-1165"><a href="#AlterColumn-1165"><span class="linenos">1165</span></a> <span class="s2">&quot;drop&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="AlterColumn-1166"><a href="#AlterColumn-1166"><span class="linenos">1166</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="AlterColumn.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="AlterColumn.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="AlterColumn.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="AlterColumn.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="AlterColumn.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="AlterColumn.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="AlterColumn.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="AlterColumn.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AlterColumn.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AlterColumn.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AlterColumn.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AlterColumn.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AlterColumn.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="AlterColumn.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AlterColumn.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AlterColumn.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="AlterColumn.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="AlterColumn.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="AlterColumn.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="AlterColumn.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="AlterColumn.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="AlterColumn.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="AlterColumn.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="AlterColumn.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="AlterColumn.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="AlterColumn.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="AlterColumn.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="AlterColumn.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AlterColumn.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AlterColumn.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="AlterColumn.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AlterColumn.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AlterColumn.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="AlterColumn.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="AlterColumn.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="AlterColumn.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="AlterColumn.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="AlterColumn.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="RenameTable">
<input id="RenameTable-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">RenameTable</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="RenameTable-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#RenameTable"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="RenameTable-1169"><a href="#RenameTable-1169"><span class="linenos">1169</span></a><span class="k">class</span> <span class="nc">RenameTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="RenameTable-1170"><a href="#RenameTable-1170"><span class="linenos">1170</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="RenameTable.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="RenameTable.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="RenameTable.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="RenameTable.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="RenameTable.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="RenameTable.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="RenameTable.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="RenameTable.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RenameTable.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RenameTable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RenameTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RenameTable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RenameTable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="RenameTable.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RenameTable.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RenameTable.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="RenameTable.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="RenameTable.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="RenameTable.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="RenameTable.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="RenameTable.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="RenameTable.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="RenameTable.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="RenameTable.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="RenameTable.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="RenameTable.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="RenameTable.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="RenameTable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RenameTable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RenameTable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="RenameTable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RenameTable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RenameTable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="RenameTable.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="RenameTable.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="RenameTable.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="RenameTable.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="RenameTable.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="SetTag">
<input id="SetTag-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SetTag</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="SetTag-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SetTag"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SetTag-1173"><a href="#SetTag-1173"><span class="linenos">1173</span></a><span class="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="SetTag-1174"><a href="#SetTag-1174"><span class="linenos">1174</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SetTag.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SetTag.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SetTag.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SetTag.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SetTag.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SetTag.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SetTag.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SetTag.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SetTag.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SetTag.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SetTag.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SetTag.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SetTag.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SetTag.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SetTag.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SetTag.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SetTag.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SetTag.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SetTag.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SetTag.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SetTag.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SetTag.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SetTag.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SetTag.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SetTag.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SetTag.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SetTag.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SetTag.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SetTag.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SetTag.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SetTag.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SetTag.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SetTag.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SetTag.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SetTag.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SetTag.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SetTag.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SetTag.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Comment">
<input id="Comment-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Comment</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Comment-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Comment"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Comment-1177"><a href="#Comment-1177"><span class="linenos">1177</span></a><span class="k">class</span> <span class="nc">Comment</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Comment-1178"><a href="#Comment-1178"><span class="linenos">1178</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Comment.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Comment.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Comment.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Comment.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Comment.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Comment.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Comment.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Comment.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Comment.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Comment.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Comment.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Comment.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Comment.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Comment.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Comment.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Comment.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Comment.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Comment.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Comment.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Comment.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Comment.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Comment.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Comment.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Comment.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Comment.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Comment.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Comment.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Comment.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Comment.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Comment.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Comment.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Comment.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Comment.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Comment.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Comment.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Comment.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Comment.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Comment.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="MergeTreeTTLAction">
<input id="MergeTreeTTLAction-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">MergeTreeTTLAction</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="MergeTreeTTLAction-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#MergeTreeTTLAction"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MergeTreeTTLAction-1182"><a href="#MergeTreeTTLAction-1182"><span class="linenos">1182</span></a><span class="k">class</span> <span class="nc">MergeTreeTTLAction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="MergeTreeTTLAction-1183"><a href="#MergeTreeTTLAction-1183"><span class="linenos">1183</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="MergeTreeTTLAction-1184"><a href="#MergeTreeTTLAction-1184"><span class="linenos">1184</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="MergeTreeTTLAction-1185"><a href="#MergeTreeTTLAction-1185"><span class="linenos">1185</span></a> <span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MergeTreeTTLAction-1186"><a href="#MergeTreeTTLAction-1186"><span class="linenos">1186</span></a> <span class="s2">&quot;recompress&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MergeTreeTTLAction-1187"><a href="#MergeTreeTTLAction-1187"><span class="linenos">1187</span></a> <span class="s2">&quot;to_disk&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MergeTreeTTLAction-1188"><a href="#MergeTreeTTLAction-1188"><span class="linenos">1188</span></a> <span class="s2">&quot;to_volume&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MergeTreeTTLAction-1189"><a href="#MergeTreeTTLAction-1189"><span class="linenos">1189</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="MergeTreeTTLAction.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="MergeTreeTTLAction.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="MergeTreeTTLAction.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="MergeTreeTTLAction.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="MergeTreeTTLAction.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="MergeTreeTTLAction.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="MergeTreeTTLAction.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="MergeTreeTTLAction.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MergeTreeTTLAction.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MergeTreeTTLAction.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="MergeTreeTTLAction.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MergeTreeTTLAction.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MergeTreeTTLAction.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="MergeTreeTTLAction.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="MergeTreeTTLAction.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="MergeTreeTTLAction.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="MergeTreeTTLAction.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="MergeTreeTTLAction.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="MergeTreeTTLAction.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="MergeTreeTTLAction.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="MergeTreeTTLAction.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="MergeTreeTTLAction.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="MergeTreeTTLAction.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="MergeTreeTTLAction.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="MergeTreeTTLAction.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="MergeTreeTTLAction.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="MergeTreeTTLAction.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="MergeTreeTTLAction.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MergeTreeTTLAction.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MergeTreeTTLAction.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="MergeTreeTTLAction.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MergeTreeTTLAction.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MergeTreeTTLAction.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="MergeTreeTTLAction.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="MergeTreeTTLAction.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="MergeTreeTTLAction.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="MergeTreeTTLAction.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="MergeTreeTTLAction.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="MergeTreeTTL">
<input id="MergeTreeTTL-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">MergeTreeTTL</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="MergeTreeTTL-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#MergeTreeTTL"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MergeTreeTTL-1193"><a href="#MergeTreeTTL-1193"><span class="linenos">1193</span></a><span class="k">class</span> <span class="nc">MergeTreeTTL</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="MergeTreeTTL-1194"><a href="#MergeTreeTTL-1194"><span class="linenos">1194</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="MergeTreeTTL-1195"><a href="#MergeTreeTTL-1195"><span class="linenos">1195</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="MergeTreeTTL-1196"><a href="#MergeTreeTTL-1196"><span class="linenos">1196</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MergeTreeTTL-1197"><a href="#MergeTreeTTL-1197"><span class="linenos">1197</span></a> <span class="s2">&quot;group&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MergeTreeTTL-1198"><a href="#MergeTreeTTL-1198"><span class="linenos">1198</span></a> <span class="s2">&quot;aggregates&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MergeTreeTTL-1199"><a href="#MergeTreeTTL-1199"><span class="linenos">1199</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="MergeTreeTTL.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="MergeTreeTTL.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="MergeTreeTTL.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="MergeTreeTTL.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="MergeTreeTTL.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="MergeTreeTTL.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="MergeTreeTTL.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="MergeTreeTTL.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MergeTreeTTL.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MergeTreeTTL.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="MergeTreeTTL.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MergeTreeTTL.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MergeTreeTTL.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="MergeTreeTTL.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="MergeTreeTTL.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="MergeTreeTTL.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="MergeTreeTTL.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="MergeTreeTTL.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="MergeTreeTTL.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="MergeTreeTTL.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="MergeTreeTTL.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="MergeTreeTTL.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="MergeTreeTTL.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="MergeTreeTTL.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="MergeTreeTTL.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="MergeTreeTTL.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="MergeTreeTTL.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="MergeTreeTTL.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MergeTreeTTL.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MergeTreeTTL.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="MergeTreeTTL.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MergeTreeTTL.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MergeTreeTTL.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="MergeTreeTTL.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="MergeTreeTTL.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="MergeTreeTTL.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="MergeTreeTTL.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="MergeTreeTTL.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="ColumnConstraint">
<input id="ColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ColumnConstraint</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="ColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraint-1202"><a href="#ColumnConstraint-1202"><span class="linenos">1202</span></a><span class="k">class</span> <span class="nc">ColumnConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="ColumnConstraint-1203"><a href="#ColumnConstraint-1203"><span class="linenos">1203</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="ColumnConstraint-1204"><a href="#ColumnConstraint-1204"><span class="linenos">1204</span></a>
</span><span id="ColumnConstraint-1205"><a href="#ColumnConstraint-1205"><span class="linenos">1205</span></a> <span class="nd">@property</span>
</span><span id="ColumnConstraint-1206"><a href="#ColumnConstraint-1206"><span class="linenos">1206</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">ColumnConstraintKind</span><span class="p">:</span>
</span><span id="ColumnConstraint-1207"><a href="#ColumnConstraint-1207"><span class="linenos">1207</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;kind&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="ColumnConstraintKind">
<input id="ColumnConstraintKind-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ColumnConstraintKind</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="ColumnConstraintKind-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ColumnConstraintKind"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraintKind-1210"><a href="#ColumnConstraintKind-1210"><span class="linenos">1210</span></a><span class="k">class</span> <span class="nc">ColumnConstraintKind</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="ColumnConstraintKind-1211"><a href="#ColumnConstraintKind-1211"><span class="linenos">1211</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ColumnConstraintKind.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ColumnConstraintKind.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ColumnConstraintKind.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ColumnConstraintKind.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ColumnConstraintKind.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ColumnConstraintKind.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ColumnConstraintKind.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ColumnConstraintKind.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ColumnConstraintKind.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ColumnConstraintKind.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ColumnConstraintKind.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ColumnConstraintKind.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ColumnConstraintKind.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ColumnConstraintKind.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ColumnConstraintKind.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ColumnConstraintKind.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ColumnConstraintKind.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ColumnConstraintKind.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ColumnConstraintKind.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ColumnConstraintKind.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ColumnConstraintKind.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ColumnConstraintKind.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ColumnConstraintKind.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ColumnConstraintKind.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ColumnConstraintKind.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ColumnConstraintKind.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ColumnConstraintKind.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ColumnConstraintKind.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ColumnConstraintKind.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ColumnConstraintKind.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ColumnConstraintKind.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ColumnConstraintKind.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ColumnConstraintKind.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ColumnConstraintKind.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ColumnConstraintKind.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ColumnConstraintKind.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ColumnConstraintKind.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ColumnConstraintKind.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="AutoIncrementColumnConstraint">
<input id="AutoIncrementColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">AutoIncrementColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="AutoIncrementColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#AutoIncrementColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="AutoIncrementColumnConstraint-1214"><a href="#AutoIncrementColumnConstraint-1214"><span class="linenos">1214</span></a><span class="k">class</span> <span class="nc">AutoIncrementColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="AutoIncrementColumnConstraint-1215"><a href="#AutoIncrementColumnConstraint-1215"><span class="linenos">1215</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="AutoIncrementColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="AutoIncrementColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="AutoIncrementColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="AutoIncrementColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="AutoIncrementColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="AutoIncrementColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="AutoIncrementColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="AutoIncrementColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AutoIncrementColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AutoIncrementColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AutoIncrementColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AutoIncrementColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AutoIncrementColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="AutoIncrementColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AutoIncrementColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AutoIncrementColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="AutoIncrementColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="AutoIncrementColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="AutoIncrementColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="AutoIncrementColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="AutoIncrementColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="AutoIncrementColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="AutoIncrementColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="AutoIncrementColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="AutoIncrementColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="AutoIncrementColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="AutoIncrementColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="AutoIncrementColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AutoIncrementColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AutoIncrementColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="AutoIncrementColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AutoIncrementColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AutoIncrementColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="AutoIncrementColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="AutoIncrementColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="AutoIncrementColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="AutoIncrementColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="AutoIncrementColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="CaseSpecificColumnConstraint">
<input id="CaseSpecificColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CaseSpecificColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="CaseSpecificColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CaseSpecificColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CaseSpecificColumnConstraint-1218"><a href="#CaseSpecificColumnConstraint-1218"><span class="linenos">1218</span></a><span class="k">class</span> <span class="nc">CaseSpecificColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="CaseSpecificColumnConstraint-1219"><a href="#CaseSpecificColumnConstraint-1219"><span class="linenos">1219</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;not_&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CaseSpecificColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CaseSpecificColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CaseSpecificColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CaseSpecificColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CaseSpecificColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CaseSpecificColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CaseSpecificColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CaseSpecificColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CaseSpecificColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CaseSpecificColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CaseSpecificColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CaseSpecificColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CaseSpecificColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CaseSpecificColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CaseSpecificColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CaseSpecificColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CaseSpecificColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CaseSpecificColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CaseSpecificColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CaseSpecificColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CaseSpecificColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CaseSpecificColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CaseSpecificColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CaseSpecificColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CaseSpecificColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CaseSpecificColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CaseSpecificColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CaseSpecificColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CaseSpecificColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CaseSpecificColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CaseSpecificColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CaseSpecificColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CaseSpecificColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CaseSpecificColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CaseSpecificColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CaseSpecificColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CaseSpecificColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CaseSpecificColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="CharacterSetColumnConstraint">
<input id="CharacterSetColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CharacterSetColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="CharacterSetColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CharacterSetColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CharacterSetColumnConstraint-1222"><a href="#CharacterSetColumnConstraint-1222"><span class="linenos">1222</span></a><span class="k">class</span> <span class="nc">CharacterSetColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="CharacterSetColumnConstraint-1223"><a href="#CharacterSetColumnConstraint-1223"><span class="linenos">1223</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CharacterSetColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CharacterSetColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CharacterSetColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CharacterSetColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CharacterSetColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CharacterSetColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CharacterSetColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CharacterSetColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CharacterSetColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CharacterSetColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CharacterSetColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CharacterSetColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CharacterSetColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CharacterSetColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CharacterSetColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CharacterSetColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CharacterSetColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CharacterSetColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CharacterSetColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CharacterSetColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CharacterSetColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CharacterSetColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CharacterSetColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CharacterSetColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CharacterSetColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CharacterSetColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CharacterSetColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CharacterSetColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CharacterSetColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CharacterSetColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CharacterSetColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CharacterSetColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CharacterSetColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CharacterSetColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CharacterSetColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CharacterSetColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CharacterSetColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CharacterSetColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="CheckColumnConstraint">
<input id="CheckColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CheckColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="CheckColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CheckColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CheckColumnConstraint-1226"><a href="#CheckColumnConstraint-1226"><span class="linenos">1226</span></a><span class="k">class</span> <span class="nc">CheckColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="CheckColumnConstraint-1227"><a href="#CheckColumnConstraint-1227"><span class="linenos">1227</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CheckColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CheckColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CheckColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CheckColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CheckColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CheckColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CheckColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CheckColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CheckColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CheckColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CheckColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CheckColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CheckColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CheckColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CheckColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CheckColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CheckColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CheckColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CheckColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CheckColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CheckColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CheckColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CheckColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CheckColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CheckColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CheckColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CheckColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CheckColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CheckColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CheckColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CheckColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CheckColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CheckColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CheckColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CheckColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CheckColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CheckColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CheckColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="CollateColumnConstraint">
<input id="CollateColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CollateColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="CollateColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CollateColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CollateColumnConstraint-1230"><a href="#CollateColumnConstraint-1230"><span class="linenos">1230</span></a><span class="k">class</span> <span class="nc">CollateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="CollateColumnConstraint-1231"><a href="#CollateColumnConstraint-1231"><span class="linenos">1231</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CollateColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CollateColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CollateColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CollateColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CollateColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CollateColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CollateColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CollateColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CollateColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CollateColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CollateColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CollateColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CollateColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CollateColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CollateColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CollateColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CollateColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CollateColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CollateColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CollateColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CollateColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CollateColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CollateColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CollateColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CollateColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CollateColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CollateColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CollateColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CollateColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CollateColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CollateColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CollateColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CollateColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CollateColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CollateColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CollateColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CollateColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CollateColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="CommentColumnConstraint">
<input id="CommentColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CommentColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="CommentColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CommentColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CommentColumnConstraint-1234"><a href="#CommentColumnConstraint-1234"><span class="linenos">1234</span></a><span class="k">class</span> <span class="nc">CommentColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="CommentColumnConstraint-1235"><a href="#CommentColumnConstraint-1235"><span class="linenos">1235</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CommentColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CommentColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CommentColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CommentColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CommentColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CommentColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CommentColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CommentColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CommentColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CommentColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CommentColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CommentColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CommentColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CommentColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CommentColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CommentColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CommentColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CommentColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CommentColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CommentColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CommentColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CommentColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CommentColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CommentColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CommentColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CommentColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CommentColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CommentColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CommentColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CommentColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CommentColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CommentColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CommentColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CommentColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CommentColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CommentColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CommentColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CommentColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="CompressColumnConstraint">
<input id="CompressColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CompressColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="CompressColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CompressColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CompressColumnConstraint-1238"><a href="#CompressColumnConstraint-1238"><span class="linenos">1238</span></a><span class="k">class</span> <span class="nc">CompressColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="CompressColumnConstraint-1239"><a href="#CompressColumnConstraint-1239"><span class="linenos">1239</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CompressColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CompressColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CompressColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CompressColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CompressColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CompressColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CompressColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CompressColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CompressColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CompressColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CompressColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CompressColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CompressColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CompressColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CompressColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CompressColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CompressColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CompressColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CompressColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CompressColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CompressColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CompressColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CompressColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CompressColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CompressColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CompressColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CompressColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CompressColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CompressColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CompressColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CompressColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CompressColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CompressColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CompressColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CompressColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CompressColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CompressColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CompressColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DateFormatColumnConstraint">
<input id="DateFormatColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DateFormatColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="DateFormatColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DateFormatColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DateFormatColumnConstraint-1242"><a href="#DateFormatColumnConstraint-1242"><span class="linenos">1242</span></a><span class="k">class</span> <span class="nc">DateFormatColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="DateFormatColumnConstraint-1243"><a href="#DateFormatColumnConstraint-1243"><span class="linenos">1243</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DateFormatColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DateFormatColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DateFormatColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DateFormatColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DateFormatColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DateFormatColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DateFormatColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DateFormatColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateFormatColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateFormatColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateFormatColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateFormatColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateFormatColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DateFormatColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateFormatColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateFormatColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DateFormatColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DateFormatColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DateFormatColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DateFormatColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DateFormatColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DateFormatColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DateFormatColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DateFormatColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DateFormatColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DateFormatColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DateFormatColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DateFormatColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateFormatColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateFormatColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DateFormatColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateFormatColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateFormatColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DateFormatColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DateFormatColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DateFormatColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DateFormatColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DateFormatColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DefaultColumnConstraint">
<input id="DefaultColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DefaultColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="DefaultColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DefaultColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DefaultColumnConstraint-1246"><a href="#DefaultColumnConstraint-1246"><span class="linenos">1246</span></a><span class="k">class</span> <span class="nc">DefaultColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="DefaultColumnConstraint-1247"><a href="#DefaultColumnConstraint-1247"><span class="linenos">1247</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DefaultColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DefaultColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DefaultColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DefaultColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DefaultColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DefaultColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DefaultColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DefaultColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DefaultColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DefaultColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DefaultColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DefaultColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DefaultColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DefaultColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DefaultColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DefaultColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DefaultColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DefaultColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DefaultColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DefaultColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DefaultColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DefaultColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DefaultColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DefaultColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DefaultColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DefaultColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DefaultColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DefaultColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DefaultColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DefaultColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DefaultColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DefaultColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DefaultColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DefaultColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DefaultColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DefaultColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DefaultColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DefaultColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="EncodeColumnConstraint">
<input id="EncodeColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">EncodeColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="EncodeColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#EncodeColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="EncodeColumnConstraint-1250"><a href="#EncodeColumnConstraint-1250"><span class="linenos">1250</span></a><span class="k">class</span> <span class="nc">EncodeColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="EncodeColumnConstraint-1251"><a href="#EncodeColumnConstraint-1251"><span class="linenos">1251</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="EncodeColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="EncodeColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="EncodeColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="EncodeColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="EncodeColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="EncodeColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="EncodeColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="EncodeColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="EncodeColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="EncodeColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="EncodeColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="EncodeColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="EncodeColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="EncodeColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="EncodeColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="EncodeColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="EncodeColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="EncodeColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="EncodeColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="EncodeColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="EncodeColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="EncodeColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="EncodeColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="EncodeColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="EncodeColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="EncodeColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="EncodeColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="EncodeColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="EncodeColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="EncodeColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="EncodeColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="EncodeColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="EncodeColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="EncodeColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="EncodeColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="EncodeColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="EncodeColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="EncodeColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="GeneratedAsIdentityColumnConstraint">
<input id="GeneratedAsIdentityColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">GeneratedAsIdentityColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="GeneratedAsIdentityColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#GeneratedAsIdentityColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="GeneratedAsIdentityColumnConstraint-1254"><a href="#GeneratedAsIdentityColumnConstraint-1254"><span class="linenos">1254</span></a><span class="k">class</span> <span class="nc">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="GeneratedAsIdentityColumnConstraint-1255"><a href="#GeneratedAsIdentityColumnConstraint-1255"><span class="linenos">1255</span></a> <span class="c1"># this: True -&gt; ALWAYS, this: False -&gt; BY DEFAULT</span>
</span><span id="GeneratedAsIdentityColumnConstraint-1256"><a href="#GeneratedAsIdentityColumnConstraint-1256"><span class="linenos">1256</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="GeneratedAsIdentityColumnConstraint-1257"><a href="#GeneratedAsIdentityColumnConstraint-1257"><span class="linenos">1257</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="GeneratedAsIdentityColumnConstraint-1258"><a href="#GeneratedAsIdentityColumnConstraint-1258"><span class="linenos">1258</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="GeneratedAsIdentityColumnConstraint-1259"><a href="#GeneratedAsIdentityColumnConstraint-1259"><span class="linenos">1259</span></a> <span class="s2">&quot;on_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="GeneratedAsIdentityColumnConstraint-1260"><a href="#GeneratedAsIdentityColumnConstraint-1260"><span class="linenos">1260</span></a> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="GeneratedAsIdentityColumnConstraint-1261"><a href="#GeneratedAsIdentityColumnConstraint-1261"><span class="linenos">1261</span></a> <span class="s2">&quot;increment&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="GeneratedAsIdentityColumnConstraint-1262"><a href="#GeneratedAsIdentityColumnConstraint-1262"><span class="linenos">1262</span></a> <span class="s2">&quot;minvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="GeneratedAsIdentityColumnConstraint-1263"><a href="#GeneratedAsIdentityColumnConstraint-1263"><span class="linenos">1263</span></a> <span class="s2">&quot;maxvalue&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="GeneratedAsIdentityColumnConstraint-1264"><a href="#GeneratedAsIdentityColumnConstraint-1264"><span class="linenos">1264</span></a> <span class="s2">&quot;cycle&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="GeneratedAsIdentityColumnConstraint-1265"><a href="#GeneratedAsIdentityColumnConstraint-1265"><span class="linenos">1265</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="GeneratedAsIdentityColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="GeneratedAsIdentityColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="InlineLengthColumnConstraint">
<input id="InlineLengthColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">InlineLengthColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="InlineLengthColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#InlineLengthColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="InlineLengthColumnConstraint-1268"><a href="#InlineLengthColumnConstraint-1268"><span class="linenos">1268</span></a><span class="k">class</span> <span class="nc">InlineLengthColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="InlineLengthColumnConstraint-1269"><a href="#InlineLengthColumnConstraint-1269"><span class="linenos">1269</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="InlineLengthColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="InlineLengthColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="InlineLengthColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="InlineLengthColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="InlineLengthColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="InlineLengthColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="InlineLengthColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="InlineLengthColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="InlineLengthColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="InlineLengthColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="InlineLengthColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="InlineLengthColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="InlineLengthColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="InlineLengthColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="InlineLengthColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="InlineLengthColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="InlineLengthColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="InlineLengthColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="InlineLengthColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="InlineLengthColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="InlineLengthColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="InlineLengthColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="InlineLengthColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="InlineLengthColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="InlineLengthColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="InlineLengthColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="InlineLengthColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="InlineLengthColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="InlineLengthColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="InlineLengthColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="InlineLengthColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="InlineLengthColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="InlineLengthColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="InlineLengthColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="InlineLengthColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="InlineLengthColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="InlineLengthColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="InlineLengthColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="NotNullColumnConstraint">
<input id="NotNullColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">NotNullColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="NotNullColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#NotNullColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="NotNullColumnConstraint-1272"><a href="#NotNullColumnConstraint-1272"><span class="linenos">1272</span></a><span class="k">class</span> <span class="nc">NotNullColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="NotNullColumnConstraint-1273"><a href="#NotNullColumnConstraint-1273"><span class="linenos">1273</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;allow_null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="NotNullColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="NotNullColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="NotNullColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="NotNullColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="NotNullColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="NotNullColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="NotNullColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="NotNullColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NotNullColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NotNullColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NotNullColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NotNullColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NotNullColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="NotNullColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NotNullColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NotNullColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="NotNullColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="NotNullColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="NotNullColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="NotNullColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="NotNullColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="NotNullColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="NotNullColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="NotNullColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="NotNullColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="NotNullColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="NotNullColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="NotNullColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NotNullColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NotNullColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="NotNullColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NotNullColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NotNullColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="NotNullColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="NotNullColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="NotNullColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="NotNullColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="NotNullColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="OnUpdateColumnConstraint">
<input id="OnUpdateColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">OnUpdateColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="OnUpdateColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#OnUpdateColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="OnUpdateColumnConstraint-1277"><a href="#OnUpdateColumnConstraint-1277"><span class="linenos">1277</span></a><span class="k">class</span> <span class="nc">OnUpdateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="OnUpdateColumnConstraint-1278"><a href="#OnUpdateColumnConstraint-1278"><span class="linenos">1278</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="OnUpdateColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="OnUpdateColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="OnUpdateColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="OnUpdateColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="OnUpdateColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="OnUpdateColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="OnUpdateColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="OnUpdateColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="OnUpdateColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="OnUpdateColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="OnUpdateColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OnUpdateColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="OnUpdateColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="OnUpdateColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="OnUpdateColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="OnUpdateColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="OnUpdateColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="OnUpdateColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="OnUpdateColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="OnUpdateColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="OnUpdateColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="OnUpdateColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="OnUpdateColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="OnUpdateColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="OnUpdateColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="OnUpdateColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="OnUpdateColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="OnUpdateColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="OnUpdateColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="OnUpdateColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="OnUpdateColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="OnUpdateColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="OnUpdateColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="OnUpdateColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="OnUpdateColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="OnUpdateColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="OnUpdateColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="OnUpdateColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="PrimaryKeyColumnConstraint">
<input id="PrimaryKeyColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">PrimaryKeyColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="PrimaryKeyColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#PrimaryKeyColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="PrimaryKeyColumnConstraint-1281"><a href="#PrimaryKeyColumnConstraint-1281"><span class="linenos">1281</span></a><span class="k">class</span> <span class="nc">PrimaryKeyColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="PrimaryKeyColumnConstraint-1282"><a href="#PrimaryKeyColumnConstraint-1282"><span class="linenos">1282</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="PrimaryKeyColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="PrimaryKeyColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="PrimaryKeyColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="PrimaryKeyColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="PrimaryKeyColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="PrimaryKeyColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="PrimaryKeyColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="PrimaryKeyColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PrimaryKeyColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PrimaryKeyColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PrimaryKeyColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PrimaryKeyColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PrimaryKeyColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="PrimaryKeyColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PrimaryKeyColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PrimaryKeyColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="PrimaryKeyColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="PrimaryKeyColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="PrimaryKeyColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="PrimaryKeyColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="PrimaryKeyColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="PrimaryKeyColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="PrimaryKeyColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="PrimaryKeyColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="PrimaryKeyColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="PrimaryKeyColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="PrimaryKeyColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="PrimaryKeyColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PrimaryKeyColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PrimaryKeyColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="PrimaryKeyColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PrimaryKeyColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PrimaryKeyColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="PrimaryKeyColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="PrimaryKeyColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="PrimaryKeyColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="PrimaryKeyColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="PrimaryKeyColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="TitleColumnConstraint">
<input id="TitleColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TitleColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="TitleColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TitleColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TitleColumnConstraint-1285"><a href="#TitleColumnConstraint-1285"><span class="linenos">1285</span></a><span class="k">class</span> <span class="nc">TitleColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="TitleColumnConstraint-1286"><a href="#TitleColumnConstraint-1286"><span class="linenos">1286</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TitleColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TitleColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TitleColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TitleColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TitleColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TitleColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TitleColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TitleColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TitleColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TitleColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TitleColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TitleColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TitleColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TitleColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TitleColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TitleColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TitleColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TitleColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TitleColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TitleColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TitleColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TitleColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TitleColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TitleColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TitleColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TitleColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TitleColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TitleColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TitleColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TitleColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TitleColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TitleColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TitleColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TitleColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TitleColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TitleColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TitleColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TitleColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="UniqueColumnConstraint">
<input id="UniqueColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">UniqueColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="UniqueColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#UniqueColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="UniqueColumnConstraint-1289"><a href="#UniqueColumnConstraint-1289"><span class="linenos">1289</span></a><span class="k">class</span> <span class="nc">UniqueColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="UniqueColumnConstraint-1290"><a href="#UniqueColumnConstraint-1290"><span class="linenos">1290</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="UniqueColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="UniqueColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="UniqueColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="UniqueColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="UniqueColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="UniqueColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="UniqueColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="UniqueColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UniqueColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UniqueColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UniqueColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UniqueColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UniqueColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="UniqueColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UniqueColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UniqueColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="UniqueColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="UniqueColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="UniqueColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="UniqueColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="UniqueColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="UniqueColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="UniqueColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="UniqueColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="UniqueColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="UniqueColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="UniqueColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="UniqueColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UniqueColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UniqueColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="UniqueColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UniqueColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UniqueColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="UniqueColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="UniqueColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="UniqueColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="UniqueColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="UniqueColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="UppercaseColumnConstraint">
<input id="UppercaseColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">UppercaseColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="UppercaseColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#UppercaseColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="UppercaseColumnConstraint-1293"><a href="#UppercaseColumnConstraint-1293"><span class="linenos">1293</span></a><span class="k">class</span> <span class="nc">UppercaseColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="UppercaseColumnConstraint-1294"><a href="#UppercaseColumnConstraint-1294"><span class="linenos">1294</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="UppercaseColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="UppercaseColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="UppercaseColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="UppercaseColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="UppercaseColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="UppercaseColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="UppercaseColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="UppercaseColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UppercaseColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UppercaseColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UppercaseColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UppercaseColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UppercaseColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="UppercaseColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UppercaseColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UppercaseColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="UppercaseColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="UppercaseColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="UppercaseColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="UppercaseColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="UppercaseColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="UppercaseColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="UppercaseColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="UppercaseColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="UppercaseColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="UppercaseColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="UppercaseColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="UppercaseColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UppercaseColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UppercaseColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="UppercaseColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UppercaseColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UppercaseColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="UppercaseColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="UppercaseColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="UppercaseColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="UppercaseColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="UppercaseColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="PathColumnConstraint">
<input id="PathColumnConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">PathColumnConstraint</span><wbr>(<span class="base"><a href="#ColumnConstraintKind">ColumnConstraintKind</a></span>):
<label class="view-source-button" for="PathColumnConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#PathColumnConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="PathColumnConstraint-1297"><a href="#PathColumnConstraint-1297"><span class="linenos">1297</span></a><span class="k">class</span> <span class="nc">PathColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span>
</span><span id="PathColumnConstraint-1298"><a href="#PathColumnConstraint-1298"><span class="linenos">1298</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="PathColumnConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="PathColumnConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="PathColumnConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="PathColumnConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="PathColumnConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="PathColumnConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="PathColumnConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="PathColumnConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PathColumnConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PathColumnConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PathColumnConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PathColumnConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PathColumnConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="PathColumnConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PathColumnConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PathColumnConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="PathColumnConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="PathColumnConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="PathColumnConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="PathColumnConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="PathColumnConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="PathColumnConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="PathColumnConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="PathColumnConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="PathColumnConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="PathColumnConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="PathColumnConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="PathColumnConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PathColumnConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PathColumnConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="PathColumnConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PathColumnConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PathColumnConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="PathColumnConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="PathColumnConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="PathColumnConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="PathColumnConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="PathColumnConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Constraint">
<input id="Constraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Constraint</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Constraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Constraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Constraint-1301"><a href="#Constraint-1301"><span class="linenos">1301</span></a><span class="k">class</span> <span class="nc">Constraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Constraint-1302"><a href="#Constraint-1302"><span class="linenos">1302</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Constraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Constraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Constraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Constraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Constraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Constraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Constraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Constraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Constraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Constraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Constraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Constraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Constraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Constraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Constraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Constraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Constraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Constraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Constraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Constraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Constraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Constraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Constraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Constraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Constraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Constraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Constraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Constraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Constraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Constraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Constraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Constraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Constraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Constraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Constraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Constraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Constraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Constraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Delete">
<input id="Delete-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Delete</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Delete-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Delete"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Delete-1305"><a href="#Delete-1305"><span class="linenos">1305</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Delete-1306"><a href="#Delete-1306"><span class="linenos">1306</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Delete-1307"><a href="#Delete-1307"><span class="linenos">1307</span></a>
</span><span id="Delete-1308"><a href="#Delete-1308"><span class="linenos">1308</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
</span><span id="Delete-1309"><a href="#Delete-1309"><span class="linenos">1309</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Delete-1310"><a href="#Delete-1310"><span class="linenos">1310</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Delete-1311"><a href="#Delete-1311"><span class="linenos">1311</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Delete-1312"><a href="#Delete-1312"><span class="linenos">1312</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Delete-1313"><a href="#Delete-1313"><span class="linenos">1313</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Delete-1314"><a href="#Delete-1314"><span class="linenos">1314</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
</span><span id="Delete-1315"><a href="#Delete-1315"><span class="linenos">1315</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Delete-1316"><a href="#Delete-1316"><span class="linenos">1316</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
</span><span id="Delete-1317"><a href="#Delete-1317"><span class="linenos">1317</span></a>
</span><span id="Delete-1318"><a href="#Delete-1318"><span class="linenos">1318</span></a><span class="sd"> Example:</span>
</span><span id="Delete-1319"><a href="#Delete-1319"><span class="linenos">1319</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
</span><span id="Delete-1320"><a href="#Delete-1320"><span class="linenos">1320</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
</span><span id="Delete-1321"><a href="#Delete-1321"><span class="linenos">1321</span></a>
</span><span id="Delete-1322"><a href="#Delete-1322"><span class="linenos">1322</span></a><span class="sd"> Args:</span>
</span><span id="Delete-1323"><a href="#Delete-1323"><span class="linenos">1323</span></a><span class="sd"> table: the table from which to delete.</span>
</span><span id="Delete-1324"><a href="#Delete-1324"><span class="linenos">1324</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Delete-1325"><a href="#Delete-1325"><span class="linenos">1325</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Delete-1326"><a href="#Delete-1326"><span class="linenos">1326</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Delete-1327"><a href="#Delete-1327"><span class="linenos">1327</span></a>
</span><span id="Delete-1328"><a href="#Delete-1328"><span class="linenos">1328</span></a><span class="sd"> Returns:</span>
</span><span id="Delete-1329"><a href="#Delete-1329"><span class="linenos">1329</span></a><span class="sd"> Delete: the modified expression.</span>
</span><span id="Delete-1330"><a href="#Delete-1330"><span class="linenos">1330</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Delete-1331"><a href="#Delete-1331"><span class="linenos">1331</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="Delete-1332"><a href="#Delete-1332"><span class="linenos">1332</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
</span><span id="Delete-1333"><a href="#Delete-1333"><span class="linenos">1333</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Delete-1334"><a href="#Delete-1334"><span class="linenos">1334</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
</span><span id="Delete-1335"><a href="#Delete-1335"><span class="linenos">1335</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Delete-1336"><a href="#Delete-1336"><span class="linenos">1336</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
</span><span id="Delete-1337"><a href="#Delete-1337"><span class="linenos">1337</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Delete-1338"><a href="#Delete-1338"><span class="linenos">1338</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Delete-1339"><a href="#Delete-1339"><span class="linenos">1339</span></a> <span class="p">)</span>
</span><span id="Delete-1340"><a href="#Delete-1340"><span class="linenos">1340</span></a>
</span><span id="Delete-1341"><a href="#Delete-1341"><span class="linenos">1341</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
</span><span id="Delete-1342"><a href="#Delete-1342"><span class="linenos">1342</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Delete-1343"><a href="#Delete-1343"><span class="linenos">1343</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Delete-1344"><a href="#Delete-1344"><span class="linenos">1344</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Delete-1345"><a href="#Delete-1345"><span class="linenos">1345</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Delete-1346"><a href="#Delete-1346"><span class="linenos">1346</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Delete-1347"><a href="#Delete-1347"><span class="linenos">1347</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Delete-1348"><a href="#Delete-1348"><span class="linenos">1348</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
</span><span id="Delete-1349"><a href="#Delete-1349"><span class="linenos">1349</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Delete-1350"><a href="#Delete-1350"><span class="linenos">1350</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
</span><span id="Delete-1351"><a href="#Delete-1351"><span class="linenos">1351</span></a>
</span><span id="Delete-1352"><a href="#Delete-1352"><span class="linenos">1352</span></a><span class="sd"> Example:</span>
</span><span id="Delete-1353"><a href="#Delete-1353"><span class="linenos">1353</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
</span><span id="Delete-1354"><a href="#Delete-1354"><span class="linenos">1354</span></a><span class="sd"> &quot;DELETE FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
</span><span id="Delete-1355"><a href="#Delete-1355"><span class="linenos">1355</span></a>
</span><span id="Delete-1356"><a href="#Delete-1356"><span class="linenos">1356</span></a><span class="sd"> Args:</span>
</span><span id="Delete-1357"><a href="#Delete-1357"><span class="linenos">1357</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Delete-1358"><a href="#Delete-1358"><span class="linenos">1358</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Delete-1359"><a href="#Delete-1359"><span class="linenos">1359</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
</span><span id="Delete-1360"><a href="#Delete-1360"><span class="linenos">1360</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
</span><span id="Delete-1361"><a href="#Delete-1361"><span class="linenos">1361</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="Delete-1362"><a href="#Delete-1362"><span class="linenos">1362</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Delete-1363"><a href="#Delete-1363"><span class="linenos">1363</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Delete-1364"><a href="#Delete-1364"><span class="linenos">1364</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Delete-1365"><a href="#Delete-1365"><span class="linenos">1365</span></a>
</span><span id="Delete-1366"><a href="#Delete-1366"><span class="linenos">1366</span></a><span class="sd"> Returns:</span>
</span><span id="Delete-1367"><a href="#Delete-1367"><span class="linenos">1367</span></a><span class="sd"> Delete: the modified expression.</span>
</span><span id="Delete-1368"><a href="#Delete-1368"><span class="linenos">1368</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Delete-1369"><a href="#Delete-1369"><span class="linenos">1369</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="Delete-1370"><a href="#Delete-1370"><span class="linenos">1370</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Delete-1371"><a href="#Delete-1371"><span class="linenos">1371</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Delete-1372"><a href="#Delete-1372"><span class="linenos">1372</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
</span><span id="Delete-1373"><a href="#Delete-1373"><span class="linenos">1373</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Delete-1374"><a href="#Delete-1374"><span class="linenos">1374</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
</span><span id="Delete-1375"><a href="#Delete-1375"><span class="linenos">1375</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Delete-1376"><a href="#Delete-1376"><span class="linenos">1376</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Delete-1377"><a href="#Delete-1377"><span class="linenos">1377</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Delete-1378"><a href="#Delete-1378"><span class="linenos">1378</span></a> <span class="p">)</span>
</span><span id="Delete-1379"><a href="#Delete-1379"><span class="linenos">1379</span></a>
</span><span id="Delete-1380"><a href="#Delete-1380"><span class="linenos">1380</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
</span><span id="Delete-1381"><a href="#Delete-1381"><span class="linenos">1381</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Delete-1382"><a href="#Delete-1382"><span class="linenos">1382</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Delete-1383"><a href="#Delete-1383"><span class="linenos">1383</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Delete-1384"><a href="#Delete-1384"><span class="linenos">1384</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Delete-1385"><a href="#Delete-1385"><span class="linenos">1385</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Delete-1386"><a href="#Delete-1386"><span class="linenos">1386</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
</span><span id="Delete-1387"><a href="#Delete-1387"><span class="linenos">1387</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Delete-1388"><a href="#Delete-1388"><span class="linenos">1388</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
</span><span id="Delete-1389"><a href="#Delete-1389"><span class="linenos">1389</span></a>
</span><span id="Delete-1390"><a href="#Delete-1390"><span class="linenos">1390</span></a><span class="sd"> Example:</span>
</span><span id="Delete-1391"><a href="#Delete-1391"><span class="linenos">1391</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
</span><span id="Delete-1392"><a href="#Delete-1392"><span class="linenos">1392</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
</span><span id="Delete-1393"><a href="#Delete-1393"><span class="linenos">1393</span></a>
</span><span id="Delete-1394"><a href="#Delete-1394"><span class="linenos">1394</span></a><span class="sd"> Args:</span>
</span><span id="Delete-1395"><a href="#Delete-1395"><span class="linenos">1395</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
</span><span id="Delete-1396"><a href="#Delete-1396"><span class="linenos">1396</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Delete-1397"><a href="#Delete-1397"><span class="linenos">1397</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Delete-1398"><a href="#Delete-1398"><span class="linenos">1398</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Delete-1399"><a href="#Delete-1399"><span class="linenos">1399</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Delete-1400"><a href="#Delete-1400"><span class="linenos">1400</span></a>
</span><span id="Delete-1401"><a href="#Delete-1401"><span class="linenos">1401</span></a><span class="sd"> Returns:</span>
</span><span id="Delete-1402"><a href="#Delete-1402"><span class="linenos">1402</span></a><span class="sd"> Delete: the modified expression.</span>
</span><span id="Delete-1403"><a href="#Delete-1403"><span class="linenos">1403</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Delete-1404"><a href="#Delete-1404"><span class="linenos">1404</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="Delete-1405"><a href="#Delete-1405"><span class="linenos">1405</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="Delete-1406"><a href="#Delete-1406"><span class="linenos">1406</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Delete-1407"><a href="#Delete-1407"><span class="linenos">1407</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;returning&quot;</span><span class="p">,</span>
</span><span id="Delete-1408"><a href="#Delete-1408"><span class="linenos">1408</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;RETURNING&quot;</span><span class="p">,</span>
</span><span id="Delete-1409"><a href="#Delete-1409"><span class="linenos">1409</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Delete-1410"><a href="#Delete-1410"><span class="linenos">1410</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Delete-1411"><a href="#Delete-1411"><span class="linenos">1411</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
</span><span id="Delete-1412"><a href="#Delete-1412"><span class="linenos">1412</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Delete-1413"><a href="#Delete-1413"><span class="linenos">1413</span></a> <span class="p">)</span>
</span></pre></div>
<div id="Delete.delete" class="classattr">
<input id="Delete.delete-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">delete</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">table</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Delete">sqlglot.expressions.Delete</a></span>:</span></span>
<label class="view-source-button" for="Delete.delete-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Delete.delete"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Delete.delete-1308"><a href="#Delete.delete-1308"><span class="linenos">1308</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
</span><span id="Delete.delete-1309"><a href="#Delete.delete-1309"><span class="linenos">1309</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Delete.delete-1310"><a href="#Delete.delete-1310"><span class="linenos">1310</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Delete.delete-1311"><a href="#Delete.delete-1311"><span class="linenos">1311</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Delete.delete-1312"><a href="#Delete.delete-1312"><span class="linenos">1312</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Delete.delete-1313"><a href="#Delete.delete-1313"><span class="linenos">1313</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Delete.delete-1314"><a href="#Delete.delete-1314"><span class="linenos">1314</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
</span><span id="Delete.delete-1315"><a href="#Delete.delete-1315"><span class="linenos">1315</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Delete.delete-1316"><a href="#Delete.delete-1316"><span class="linenos">1316</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span>
</span><span id="Delete.delete-1317"><a href="#Delete.delete-1317"><span class="linenos">1317</span></a>
</span><span id="Delete.delete-1318"><a href="#Delete.delete-1318"><span class="linenos">1318</span></a><span class="sd"> Example:</span>
</span><span id="Delete.delete-1319"><a href="#Delete.delete-1319"><span class="linenos">1319</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).sql()</span>
</span><span id="Delete.delete-1320"><a href="#Delete.delete-1320"><span class="linenos">1320</span></a><span class="sd"> &#39;DELETE FROM tbl&#39;</span>
</span><span id="Delete.delete-1321"><a href="#Delete.delete-1321"><span class="linenos">1321</span></a>
</span><span id="Delete.delete-1322"><a href="#Delete.delete-1322"><span class="linenos">1322</span></a><span class="sd"> Args:</span>
</span><span id="Delete.delete-1323"><a href="#Delete.delete-1323"><span class="linenos">1323</span></a><span class="sd"> table: the table from which to delete.</span>
</span><span id="Delete.delete-1324"><a href="#Delete.delete-1324"><span class="linenos">1324</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Delete.delete-1325"><a href="#Delete.delete-1325"><span class="linenos">1325</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Delete.delete-1326"><a href="#Delete.delete-1326"><span class="linenos">1326</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Delete.delete-1327"><a href="#Delete.delete-1327"><span class="linenos">1327</span></a>
</span><span id="Delete.delete-1328"><a href="#Delete.delete-1328"><span class="linenos">1328</span></a><span class="sd"> Returns:</span>
</span><span id="Delete.delete-1329"><a href="#Delete.delete-1329"><span class="linenos">1329</span></a><span class="sd"> Delete: the modified expression.</span>
</span><span id="Delete.delete-1330"><a href="#Delete.delete-1330"><span class="linenos">1330</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Delete.delete-1331"><a href="#Delete.delete-1331"><span class="linenos">1331</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="Delete.delete-1332"><a href="#Delete.delete-1332"><span class="linenos">1332</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span>
</span><span id="Delete.delete-1333"><a href="#Delete.delete-1333"><span class="linenos">1333</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Delete.delete-1334"><a href="#Delete.delete-1334"><span class="linenos">1334</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;this&quot;</span><span class="p">,</span>
</span><span id="Delete.delete-1335"><a href="#Delete.delete-1335"><span class="linenos">1335</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Delete.delete-1336"><a href="#Delete.delete-1336"><span class="linenos">1336</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
</span><span id="Delete.delete-1337"><a href="#Delete.delete-1337"><span class="linenos">1337</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Delete.delete-1338"><a href="#Delete.delete-1338"><span class="linenos">1338</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Delete.delete-1339"><a href="#Delete.delete-1339"><span class="linenos">1339</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Create a DELETE expression or replace the table on an existing DELETE expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">delete</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;DELETE FROM tbl&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>table:</strong> the table from which to delete.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Delete: the modified expression.</p>
</blockquote>
</div>
</div>
<div id="Delete.where" class="classattr">
<input id="Delete.where-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">where</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Delete">sqlglot.expressions.Delete</a></span>:</span></span>
<label class="view-source-button" for="Delete.where-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Delete.where"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Delete.where-1341"><a href="#Delete.where-1341"><span class="linenos">1341</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
</span><span id="Delete.where-1342"><a href="#Delete.where-1342"><span class="linenos">1342</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Delete.where-1343"><a href="#Delete.where-1343"><span class="linenos">1343</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Delete.where-1344"><a href="#Delete.where-1344"><span class="linenos">1344</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Delete.where-1345"><a href="#Delete.where-1345"><span class="linenos">1345</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Delete.where-1346"><a href="#Delete.where-1346"><span class="linenos">1346</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Delete.where-1347"><a href="#Delete.where-1347"><span class="linenos">1347</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Delete.where-1348"><a href="#Delete.where-1348"><span class="linenos">1348</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
</span><span id="Delete.where-1349"><a href="#Delete.where-1349"><span class="linenos">1349</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Delete.where-1350"><a href="#Delete.where-1350"><span class="linenos">1350</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
</span><span id="Delete.where-1351"><a href="#Delete.where-1351"><span class="linenos">1351</span></a>
</span><span id="Delete.where-1352"><a href="#Delete.where-1352"><span class="linenos">1352</span></a><span class="sd"> Example:</span>
</span><span id="Delete.where-1353"><a href="#Delete.where-1353"><span class="linenos">1353</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
</span><span id="Delete.where-1354"><a href="#Delete.where-1354"><span class="linenos">1354</span></a><span class="sd"> &quot;DELETE FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
</span><span id="Delete.where-1355"><a href="#Delete.where-1355"><span class="linenos">1355</span></a>
</span><span id="Delete.where-1356"><a href="#Delete.where-1356"><span class="linenos">1356</span></a><span class="sd"> Args:</span>
</span><span id="Delete.where-1357"><a href="#Delete.where-1357"><span class="linenos">1357</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Delete.where-1358"><a href="#Delete.where-1358"><span class="linenos">1358</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Delete.where-1359"><a href="#Delete.where-1359"><span class="linenos">1359</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
</span><span id="Delete.where-1360"><a href="#Delete.where-1360"><span class="linenos">1360</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
</span><span id="Delete.where-1361"><a href="#Delete.where-1361"><span class="linenos">1361</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="Delete.where-1362"><a href="#Delete.where-1362"><span class="linenos">1362</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Delete.where-1363"><a href="#Delete.where-1363"><span class="linenos">1363</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Delete.where-1364"><a href="#Delete.where-1364"><span class="linenos">1364</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Delete.where-1365"><a href="#Delete.where-1365"><span class="linenos">1365</span></a>
</span><span id="Delete.where-1366"><a href="#Delete.where-1366"><span class="linenos">1366</span></a><span class="sd"> Returns:</span>
</span><span id="Delete.where-1367"><a href="#Delete.where-1367"><span class="linenos">1367</span></a><span class="sd"> Delete: the modified expression.</span>
</span><span id="Delete.where-1368"><a href="#Delete.where-1368"><span class="linenos">1368</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Delete.where-1369"><a href="#Delete.where-1369"><span class="linenos">1369</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="Delete.where-1370"><a href="#Delete.where-1370"><span class="linenos">1370</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Delete.where-1371"><a href="#Delete.where-1371"><span class="linenos">1371</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Delete.where-1372"><a href="#Delete.where-1372"><span class="linenos">1372</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
</span><span id="Delete.where-1373"><a href="#Delete.where-1373"><span class="linenos">1373</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Delete.where-1374"><a href="#Delete.where-1374"><span class="linenos">1374</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
</span><span id="Delete.where-1375"><a href="#Delete.where-1375"><span class="linenos">1375</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Delete.where-1376"><a href="#Delete.where-1376"><span class="linenos">1376</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Delete.where-1377"><a href="#Delete.where-1377"><span class="linenos">1377</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Delete.where-1378"><a href="#Delete.where-1378"><span class="linenos">1378</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Append to or set the WHERE expressions.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">delete</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="s2">&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&quot;DELETE FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.
Multiple expressions are combined with an AND operator.</li>
<li><strong>append:</strong> if <code>True</code>, AND the new expressions to any existing expression.
Otherwise, this resets the expression.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Delete: the modified expression.</p>
</blockquote>
</div>
</div>
<div id="Delete.returning" class="classattr">
<input id="Delete.returning-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">returning</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Delete">sqlglot.expressions.Delete</a></span>:</span></span>
<label class="view-source-button" for="Delete.returning-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Delete.returning"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Delete.returning-1380"><a href="#Delete.returning-1380"><span class="linenos">1380</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span>
</span><span id="Delete.returning-1381"><a href="#Delete.returning-1381"><span class="linenos">1381</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Delete.returning-1382"><a href="#Delete.returning-1382"><span class="linenos">1382</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Delete.returning-1383"><a href="#Delete.returning-1383"><span class="linenos">1383</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Delete.returning-1384"><a href="#Delete.returning-1384"><span class="linenos">1384</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Delete.returning-1385"><a href="#Delete.returning-1385"><span class="linenos">1385</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Delete.returning-1386"><a href="#Delete.returning-1386"><span class="linenos">1386</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
</span><span id="Delete.returning-1387"><a href="#Delete.returning-1387"><span class="linenos">1387</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Delete.returning-1388"><a href="#Delete.returning-1388"><span class="linenos">1388</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span>
</span><span id="Delete.returning-1389"><a href="#Delete.returning-1389"><span class="linenos">1389</span></a>
</span><span id="Delete.returning-1390"><a href="#Delete.returning-1390"><span class="linenos">1390</span></a><span class="sd"> Example:</span>
</span><span id="Delete.returning-1391"><a href="#Delete.returning-1391"><span class="linenos">1391</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;tbl&quot;).returning(&quot;*&quot;, dialect=&quot;postgres&quot;).sql()</span>
</span><span id="Delete.returning-1392"><a href="#Delete.returning-1392"><span class="linenos">1392</span></a><span class="sd"> &#39;DELETE FROM tbl RETURNING *&#39;</span>
</span><span id="Delete.returning-1393"><a href="#Delete.returning-1393"><span class="linenos">1393</span></a>
</span><span id="Delete.returning-1394"><a href="#Delete.returning-1394"><span class="linenos">1394</span></a><span class="sd"> Args:</span>
</span><span id="Delete.returning-1395"><a href="#Delete.returning-1395"><span class="linenos">1395</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
</span><span id="Delete.returning-1396"><a href="#Delete.returning-1396"><span class="linenos">1396</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Delete.returning-1397"><a href="#Delete.returning-1397"><span class="linenos">1397</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Delete.returning-1398"><a href="#Delete.returning-1398"><span class="linenos">1398</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Delete.returning-1399"><a href="#Delete.returning-1399"><span class="linenos">1399</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Delete.returning-1400"><a href="#Delete.returning-1400"><span class="linenos">1400</span></a>
</span><span id="Delete.returning-1401"><a href="#Delete.returning-1401"><span class="linenos">1401</span></a><span class="sd"> Returns:</span>
</span><span id="Delete.returning-1402"><a href="#Delete.returning-1402"><span class="linenos">1402</span></a><span class="sd"> Delete: the modified expression.</span>
</span><span id="Delete.returning-1403"><a href="#Delete.returning-1403"><span class="linenos">1403</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Delete.returning-1404"><a href="#Delete.returning-1404"><span class="linenos">1404</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="Delete.returning-1405"><a href="#Delete.returning-1405"><span class="linenos">1405</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="Delete.returning-1406"><a href="#Delete.returning-1406"><span class="linenos">1406</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Delete.returning-1407"><a href="#Delete.returning-1407"><span class="linenos">1407</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;returning&quot;</span><span class="p">,</span>
</span><span id="Delete.returning-1408"><a href="#Delete.returning-1408"><span class="linenos">1408</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;RETURNING&quot;</span><span class="p">,</span>
</span><span id="Delete.returning-1409"><a href="#Delete.returning-1409"><span class="linenos">1409</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Delete.returning-1410"><a href="#Delete.returning-1410"><span class="linenos">1410</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Delete.returning-1411"><a href="#Delete.returning-1411"><span class="linenos">1411</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span>
</span><span id="Delete.returning-1412"><a href="#Delete.returning-1412"><span class="linenos">1412</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Delete.returning-1413"><a href="#Delete.returning-1413"><span class="linenos">1413</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Set the RETURNING expression. Not supported by all dialects.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">delete</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="s2">&quot;postgres&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;DELETE FROM tbl RETURNING *&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Delete: the modified expression.</p>
</blockquote>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Delete.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Delete.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Delete.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Delete.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Delete.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Delete.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Delete.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Delete.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Delete.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Delete.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Delete.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Delete.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Delete.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Delete.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Delete.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Delete.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Delete.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Delete.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Delete.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Delete.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Delete.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Delete.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Delete.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Delete.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Delete.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Delete.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Delete.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Delete.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Delete.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Delete.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Delete.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Delete.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Delete.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Delete.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Delete.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Delete.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Delete.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Delete.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Drop">
<input id="Drop-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Drop</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Drop-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Drop"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Drop-1416"><a href="#Drop-1416"><span class="linenos">1416</span></a><span class="k">class</span> <span class="nc">Drop</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Drop-1417"><a href="#Drop-1417"><span class="linenos">1417</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Drop-1418"><a href="#Drop-1418"><span class="linenos">1418</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Drop-1419"><a href="#Drop-1419"><span class="linenos">1419</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Drop-1420"><a href="#Drop-1420"><span class="linenos">1420</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Drop-1421"><a href="#Drop-1421"><span class="linenos">1421</span></a> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Drop-1422"><a href="#Drop-1422"><span class="linenos">1422</span></a> <span class="s2">&quot;materialized&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Drop-1423"><a href="#Drop-1423"><span class="linenos">1423</span></a> <span class="s2">&quot;cascade&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Drop-1424"><a href="#Drop-1424"><span class="linenos">1424</span></a> <span class="s2">&quot;constraints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Drop-1425"><a href="#Drop-1425"><span class="linenos">1425</span></a> <span class="s2">&quot;purge&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Drop-1426"><a href="#Drop-1426"><span class="linenos">1426</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Drop.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Drop.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Drop.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Drop.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Drop.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Drop.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Drop.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Drop.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Drop.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Drop.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Drop.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Drop.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Drop.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Drop.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Drop.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Drop.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Drop.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Drop.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Drop.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Drop.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Drop.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Drop.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Drop.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Drop.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Drop.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Drop.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Drop.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Drop.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Drop.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Drop.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Drop.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Drop.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Drop.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Drop.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Drop.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Drop.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Drop.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Drop.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Filter">
<input id="Filter-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Filter</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Filter-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Filter"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Filter-1429"><a href="#Filter-1429"><span class="linenos">1429</span></a><span class="k">class</span> <span class="nc">Filter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Filter-1430"><a href="#Filter-1430"><span class="linenos">1430</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Filter.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Filter.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Filter.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Filter.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Filter.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Filter.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Filter.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Filter.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Filter.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Filter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Filter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Filter.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Filter.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Filter.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Filter.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Filter.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Filter.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Filter.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Filter.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Filter.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Filter.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Filter.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Filter.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Filter.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Filter.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Filter.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Filter.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Filter.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Filter.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Filter.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Filter.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Filter.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Filter.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Filter.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Filter.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Filter.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Filter.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Filter.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Check">
<input id="Check-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Check</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Check-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Check"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Check-1433"><a href="#Check-1433"><span class="linenos">1433</span></a><span class="k">class</span> <span class="nc">Check</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Check-1434"><a href="#Check-1434"><span class="linenos">1434</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Check.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Check.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Check.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Check.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Check.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Check.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Check.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Check.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Check.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Check.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Check.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Check.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Check.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Check.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Check.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Check.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Check.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Check.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Check.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Check.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Check.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Check.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Check.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Check.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Check.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Check.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Check.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Check.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Check.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Check.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Check.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Check.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Check.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Check.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Check.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Check.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Check.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Check.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Directory">
<input id="Directory-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Directory</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Directory-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Directory"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Directory-1437"><a href="#Directory-1437"><span class="linenos">1437</span></a><span class="k">class</span> <span class="nc">Directory</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Directory-1438"><a href="#Directory-1438"><span class="linenos">1438</span></a> <span class="c1"># https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html</span>
</span><span id="Directory-1439"><a href="#Directory-1439"><span class="linenos">1439</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;row_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Directory.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Directory.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Directory.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Directory.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Directory.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Directory.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Directory.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Directory.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Directory.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Directory.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Directory.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Directory.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Directory.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Directory.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Directory.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Directory.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Directory.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Directory.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Directory.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Directory.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Directory.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Directory.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Directory.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Directory.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Directory.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Directory.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Directory.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Directory.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Directory.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Directory.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Directory.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Directory.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Directory.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Directory.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Directory.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Directory.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Directory.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Directory.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="ForeignKey">
<input id="ForeignKey-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ForeignKey</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="ForeignKey-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ForeignKey"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ForeignKey-1442"><a href="#ForeignKey-1442"><span class="linenos">1442</span></a><span class="k">class</span> <span class="nc">ForeignKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="ForeignKey-1443"><a href="#ForeignKey-1443"><span class="linenos">1443</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="ForeignKey-1444"><a href="#ForeignKey-1444"><span class="linenos">1444</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="ForeignKey-1445"><a href="#ForeignKey-1445"><span class="linenos">1445</span></a> <span class="s2">&quot;reference&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="ForeignKey-1446"><a href="#ForeignKey-1446"><span class="linenos">1446</span></a> <span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="ForeignKey-1447"><a href="#ForeignKey-1447"><span class="linenos">1447</span></a> <span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="ForeignKey-1448"><a href="#ForeignKey-1448"><span class="linenos">1448</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ForeignKey.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ForeignKey.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ForeignKey.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ForeignKey.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ForeignKey.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ForeignKey.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ForeignKey.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ForeignKey.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ForeignKey.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ForeignKey.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ForeignKey.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ForeignKey.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ForeignKey.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ForeignKey.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ForeignKey.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ForeignKey.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ForeignKey.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ForeignKey.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ForeignKey.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ForeignKey.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ForeignKey.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ForeignKey.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ForeignKey.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ForeignKey.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ForeignKey.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ForeignKey.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ForeignKey.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ForeignKey.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ForeignKey.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ForeignKey.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ForeignKey.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ForeignKey.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ForeignKey.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ForeignKey.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ForeignKey.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ForeignKey.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ForeignKey.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ForeignKey.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="PrimaryKey">
<input id="PrimaryKey-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">PrimaryKey</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="PrimaryKey-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#PrimaryKey"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="PrimaryKey-1451"><a href="#PrimaryKey-1451"><span class="linenos">1451</span></a><span class="k">class</span> <span class="nc">PrimaryKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="PrimaryKey-1452"><a href="#PrimaryKey-1452"><span class="linenos">1452</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="PrimaryKey.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="PrimaryKey.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="PrimaryKey.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="PrimaryKey.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="PrimaryKey.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="PrimaryKey.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="PrimaryKey.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="PrimaryKey.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PrimaryKey.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PrimaryKey.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PrimaryKey.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PrimaryKey.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PrimaryKey.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="PrimaryKey.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PrimaryKey.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PrimaryKey.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="PrimaryKey.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="PrimaryKey.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="PrimaryKey.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="PrimaryKey.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="PrimaryKey.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="PrimaryKey.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="PrimaryKey.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="PrimaryKey.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="PrimaryKey.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="PrimaryKey.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="PrimaryKey.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="PrimaryKey.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PrimaryKey.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PrimaryKey.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="PrimaryKey.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PrimaryKey.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PrimaryKey.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="PrimaryKey.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="PrimaryKey.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="PrimaryKey.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="PrimaryKey.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="PrimaryKey.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Unique">
<input id="Unique-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Unique</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Unique-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Unique"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Unique-1455"><a href="#Unique-1455"><span class="linenos">1455</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Unique-1456"><a href="#Unique-1456"><span class="linenos">1456</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Unique.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Unique.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Unique.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Unique.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Unique.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Unique.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Unique.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Unique.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Unique.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Unique.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Unique.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Unique.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Unique.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Unique.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Unique.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Unique.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Unique.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Unique.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Unique.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Unique.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Unique.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Unique.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Unique.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Unique.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Unique.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Unique.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Unique.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Unique.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Unique.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Unique.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Unique.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Unique.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Unique.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Unique.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Unique.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Unique.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Unique.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Unique.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Into">
<input id="Into-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Into</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Into-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Into"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Into-1461"><a href="#Into-1461"><span class="linenos">1461</span></a><span class="k">class</span> <span class="nc">Into</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Into-1462"><a href="#Into-1462"><span class="linenos">1462</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;temporary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;unlogged&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Into.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Into.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Into.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Into.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Into.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Into.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Into.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Into.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Into.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Into.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Into.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Into.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Into.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Into.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Into.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Into.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Into.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Into.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Into.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Into.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Into.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Into.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Into.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Into.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Into.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Into.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Into.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Into.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Into.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Into.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Into.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Into.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Into.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Into.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Into.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Into.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Into.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Into.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="From">
<input id="From-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">From</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="From-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#From"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="From-1465"><a href="#From-1465"><span class="linenos">1465</span></a><span class="k">class</span> <span class="nc">From</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="From-1466"><a href="#From-1466"><span class="linenos">1466</span></a> <span class="nd">@property</span>
</span><span id="From-1467"><a href="#From-1467"><span class="linenos">1467</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="From-1468"><a href="#From-1468"><span class="linenos">1468</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
</span><span id="From-1469"><a href="#From-1469"><span class="linenos">1469</span></a>
</span><span id="From-1470"><a href="#From-1470"><span class="linenos">1470</span></a> <span class="nd">@property</span>
</span><span id="From-1471"><a href="#From-1471"><span class="linenos">1471</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="From-1472"><a href="#From-1472"><span class="linenos">1472</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="From.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="From.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="From.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="From.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="From.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="From.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="From.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="From.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="From.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="From.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="From.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="From.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="From.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="From.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="From.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="From.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="From.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="From.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="From.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="From.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="From.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="From.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="From.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="From.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="From.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="From.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="From.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="From.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="From.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="From.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="From.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="From.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="From.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="From.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="From.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="From.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="From.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="From.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Having">
<input id="Having-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Having</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Having-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Having"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Having-1475"><a href="#Having-1475"><span class="linenos">1475</span></a><span class="k">class</span> <span class="nc">Having</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Having-1476"><a href="#Having-1476"><span class="linenos">1476</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Having.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Having.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Having.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Having.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Having.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Having.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Having.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Having.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Having.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Having.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Having.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Having.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Having.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Having.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Having.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Having.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Having.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Having.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Having.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Having.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Having.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Having.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Having.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Having.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Having.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Having.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Having.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Having.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Having.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Having.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Having.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Having.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Having.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Having.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Having.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Having.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Having.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Having.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Hint">
<input id="Hint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Hint</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Hint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Hint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Hint-1479"><a href="#Hint-1479"><span class="linenos">1479</span></a><span class="k">class</span> <span class="nc">Hint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Hint-1480"><a href="#Hint-1480"><span class="linenos">1480</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Hint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Hint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Hint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Hint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Hint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Hint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Hint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Hint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Hint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Hint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Hint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Hint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Hint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Hint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Hint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Hint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Hint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Hint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Hint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Hint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Hint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Hint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Hint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Hint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Hint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Hint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Hint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Hint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Hint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Hint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Hint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Hint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Hint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Hint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Hint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Hint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Hint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Hint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="JoinHint">
<input id="JoinHint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">JoinHint</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="JoinHint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#JoinHint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="JoinHint-1483"><a href="#JoinHint-1483"><span class="linenos">1483</span></a><span class="k">class</span> <span class="nc">JoinHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="JoinHint-1484"><a href="#JoinHint-1484"><span class="linenos">1484</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="JoinHint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="JoinHint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="JoinHint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="JoinHint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="JoinHint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="JoinHint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="JoinHint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="JoinHint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JoinHint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JoinHint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JoinHint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JoinHint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JoinHint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="JoinHint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JoinHint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JoinHint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="JoinHint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="JoinHint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="JoinHint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="JoinHint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="JoinHint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="JoinHint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="JoinHint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="JoinHint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="JoinHint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="JoinHint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="JoinHint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="JoinHint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JoinHint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JoinHint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="JoinHint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JoinHint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JoinHint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="JoinHint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="JoinHint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="JoinHint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="JoinHint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="JoinHint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Identifier">
<input id="Identifier-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Identifier</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Identifier-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Identifier"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Identifier-1487"><a href="#Identifier-1487"><span class="linenos">1487</span></a><span class="k">class</span> <span class="nc">Identifier</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Identifier-1488"><a href="#Identifier-1488"><span class="linenos">1488</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quoted&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Identifier-1489"><a href="#Identifier-1489"><span class="linenos">1489</span></a>
</span><span id="Identifier-1490"><a href="#Identifier-1490"><span class="linenos">1490</span></a> <span class="nd">@property</span>
</span><span id="Identifier-1491"><a href="#Identifier-1491"><span class="linenos">1491</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="Identifier-1492"><a href="#Identifier-1492"><span class="linenos">1492</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</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;quoted&quot;</span><span class="p">))</span>
</span><span id="Identifier-1493"><a href="#Identifier-1493"><span class="linenos">1493</span></a>
</span><span id="Identifier-1494"><a href="#Identifier-1494"><span class="linenos">1494</span></a> <span class="nd">@property</span>
</span><span id="Identifier-1495"><a href="#Identifier-1495"><span class="linenos">1495</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
</span><span id="Identifier-1496"><a href="#Identifier-1496"><span class="linenos">1496</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span> <span class="ow">and</span> <span class="nb">any</span><span class="p">(</span><span class="n">char</span><span class="o">.</span><span class="n">isupper</span><span class="p">()</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">):</span>
</span><span id="Identifier-1497"><a href="#Identifier-1497"><span class="linenos">1497</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">quoted</span><span class="p">)</span>
</span><span id="Identifier-1498"><a href="#Identifier-1498"><span class="linenos">1498</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span>
</span><span id="Identifier-1499"><a href="#Identifier-1499"><span class="linenos">1499</span></a>
</span><span id="Identifier-1500"><a href="#Identifier-1500"><span class="linenos">1500</span></a> <span class="nd">@property</span>
</span><span id="Identifier-1501"><a href="#Identifier-1501"><span class="linenos">1501</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Identifier-1502"><a href="#Identifier-1502"><span class="linenos">1502</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
<div id="Identifier.output_name" class="classattr">
<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
</div>
<a class="headerlink" href="#Identifier.output_name"></a>
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT a&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;a&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT b AS c&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;c&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT 1 + 2&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;&#39;</span>
</code></pre>
</div>
</blockquote>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Identifier.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Identifier.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Identifier.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Identifier.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Identifier.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Identifier.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Identifier.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Identifier.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Identifier.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Identifier.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Identifier.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Identifier.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Identifier.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Identifier.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Identifier.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Identifier.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Identifier.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Identifier.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Identifier.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Identifier.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Identifier.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Identifier.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Identifier.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Identifier.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Identifier.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Identifier.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Identifier.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Identifier.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Identifier.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Identifier.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Identifier.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Identifier.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Identifier.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Identifier.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Identifier.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Identifier.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Identifier.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Index">
<input id="Index-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Index</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Index-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Index"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Index-1505"><a href="#Index-1505"><span class="linenos">1505</span></a><span class="k">class</span> <span class="nc">Index</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Index-1506"><a href="#Index-1506"><span class="linenos">1506</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Index-1507"><a href="#Index-1507"><span class="linenos">1507</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Index-1508"><a href="#Index-1508"><span class="linenos">1508</span></a> <span class="s2">&quot;table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Index-1509"><a href="#Index-1509"><span class="linenos">1509</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Index-1510"><a href="#Index-1510"><span class="linenos">1510</span></a> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Index-1511"><a href="#Index-1511"><span class="linenos">1511</span></a> <span class="s2">&quot;unique&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Index-1512"><a href="#Index-1512"><span class="linenos">1512</span></a> <span class="s2">&quot;primary&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Index-1513"><a href="#Index-1513"><span class="linenos">1513</span></a> <span class="s2">&quot;amp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span>
</span><span id="Index-1514"><a href="#Index-1514"><span class="linenos">1514</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Index.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Index.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Index.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Index.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Index.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Index.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Index.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Index.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Index.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Index.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Index.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Index.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Index.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Index.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Index.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Index.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Index.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Index.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Index.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Index.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Index.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Index.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Index.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Index.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Index.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Index.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Index.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Index.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Index.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Index.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Index.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Index.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Index.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Index.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Index.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Index.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Index.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Index.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Insert">
<input id="Insert-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Insert</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Insert-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Insert"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Insert-1517"><a href="#Insert-1517"><span class="linenos">1517</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Insert-1518"><a href="#Insert-1518"><span class="linenos">1518</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Insert-1519"><a href="#Insert-1519"><span class="linenos">1519</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Insert-1520"><a href="#Insert-1520"><span class="linenos">1520</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Insert-1521"><a href="#Insert-1521"><span class="linenos">1521</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Insert-1522"><a href="#Insert-1522"><span class="linenos">1522</span></a> <span class="s2">&quot;conflict&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Insert-1523"><a href="#Insert-1523"><span class="linenos">1523</span></a> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Insert-1524"><a href="#Insert-1524"><span class="linenos">1524</span></a> <span class="s2">&quot;overwrite&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Insert-1525"><a href="#Insert-1525"><span class="linenos">1525</span></a> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Insert-1526"><a href="#Insert-1526"><span class="linenos">1526</span></a> <span class="s2">&quot;partition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Insert-1527"><a href="#Insert-1527"><span class="linenos">1527</span></a> <span class="s2">&quot;alternative&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Insert-1528"><a href="#Insert-1528"><span class="linenos">1528</span></a> <span class="p">}</span>
</span><span id="Insert-1529"><a href="#Insert-1529"><span class="linenos">1529</span></a>
</span><span id="Insert-1530"><a href="#Insert-1530"><span class="linenos">1530</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
</span><span id="Insert-1531"><a href="#Insert-1531"><span class="linenos">1531</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Insert-1532"><a href="#Insert-1532"><span class="linenos">1532</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Insert-1533"><a href="#Insert-1533"><span class="linenos">1533</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Insert-1534"><a href="#Insert-1534"><span class="linenos">1534</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Insert-1535"><a href="#Insert-1535"><span class="linenos">1535</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Insert-1536"><a href="#Insert-1536"><span class="linenos">1536</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Insert-1537"><a href="#Insert-1537"><span class="linenos">1537</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Insert-1538"><a href="#Insert-1538"><span class="linenos">1538</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Insert-1539"><a href="#Insert-1539"><span class="linenos">1539</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
</span><span id="Insert-1540"><a href="#Insert-1540"><span class="linenos">1540</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Insert-1541"><a href="#Insert-1541"><span class="linenos">1541</span></a><span class="sd"> Append to or set the common table expressions.</span>
</span><span id="Insert-1542"><a href="#Insert-1542"><span class="linenos">1542</span></a>
</span><span id="Insert-1543"><a href="#Insert-1543"><span class="linenos">1543</span></a><span class="sd"> Example:</span>
</span><span id="Insert-1544"><a href="#Insert-1544"><span class="linenos">1544</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
</span><span id="Insert-1545"><a href="#Insert-1545"><span class="linenos">1545</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
</span><span id="Insert-1546"><a href="#Insert-1546"><span class="linenos">1546</span></a>
</span><span id="Insert-1547"><a href="#Insert-1547"><span class="linenos">1547</span></a><span class="sd"> Args:</span>
</span><span id="Insert-1548"><a href="#Insert-1548"><span class="linenos">1548</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
</span><span id="Insert-1549"><a href="#Insert-1549"><span class="linenos">1549</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
</span><span id="Insert-1550"><a href="#Insert-1550"><span class="linenos">1550</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
</span><span id="Insert-1551"><a href="#Insert-1551"><span class="linenos">1551</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Insert-1552"><a href="#Insert-1552"><span class="linenos">1552</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
</span><span id="Insert-1553"><a href="#Insert-1553"><span class="linenos">1553</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Insert-1554"><a href="#Insert-1554"><span class="linenos">1554</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="Insert-1555"><a href="#Insert-1555"><span class="linenos">1555</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Insert-1556"><a href="#Insert-1556"><span class="linenos">1556</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Insert-1557"><a href="#Insert-1557"><span class="linenos">1557</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Insert-1558"><a href="#Insert-1558"><span class="linenos">1558</span></a>
</span><span id="Insert-1559"><a href="#Insert-1559"><span class="linenos">1559</span></a><span class="sd"> Returns:</span>
</span><span id="Insert-1560"><a href="#Insert-1560"><span class="linenos">1560</span></a><span class="sd"> The modified expression.</span>
</span><span id="Insert-1561"><a href="#Insert-1561"><span class="linenos">1561</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Insert-1562"><a href="#Insert-1562"><span class="linenos">1562</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
</span><span id="Insert-1563"><a href="#Insert-1563"><span class="linenos">1563</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Insert-1564"><a href="#Insert-1564"><span class="linenos">1564</span></a> <span class="p">)</span>
</span></pre></div>
<div id="Insert.with_" class="classattr">
<input id="Insert.with_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">with_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">as_</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">recursive</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Insert">sqlglot.expressions.Insert</a></span>:</span></span>
<label class="view-source-button" for="Insert.with_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Insert.with_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Insert.with_-1530"><a href="#Insert.with_-1530"><span class="linenos">1530</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
</span><span id="Insert.with_-1531"><a href="#Insert.with_-1531"><span class="linenos">1531</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Insert.with_-1532"><a href="#Insert.with_-1532"><span class="linenos">1532</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Insert.with_-1533"><a href="#Insert.with_-1533"><span class="linenos">1533</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Insert.with_-1534"><a href="#Insert.with_-1534"><span class="linenos">1534</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Insert.with_-1535"><a href="#Insert.with_-1535"><span class="linenos">1535</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Insert.with_-1536"><a href="#Insert.with_-1536"><span class="linenos">1536</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Insert.with_-1537"><a href="#Insert.with_-1537"><span class="linenos">1537</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Insert.with_-1538"><a href="#Insert.with_-1538"><span class="linenos">1538</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Insert.with_-1539"><a href="#Insert.with_-1539"><span class="linenos">1539</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
</span><span id="Insert.with_-1540"><a href="#Insert.with_-1540"><span class="linenos">1540</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Insert.with_-1541"><a href="#Insert.with_-1541"><span class="linenos">1541</span></a><span class="sd"> Append to or set the common table expressions.</span>
</span><span id="Insert.with_-1542"><a href="#Insert.with_-1542"><span class="linenos">1542</span></a>
</span><span id="Insert.with_-1543"><a href="#Insert.with_-1543"><span class="linenos">1543</span></a><span class="sd"> Example:</span>
</span><span id="Insert.with_-1544"><a href="#Insert.with_-1544"><span class="linenos">1544</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;SELECT x FROM cte&quot;, &quot;t&quot;).with_(&quot;cte&quot;, as_=&quot;SELECT * FROM tbl&quot;).sql()</span>
</span><span id="Insert.with_-1545"><a href="#Insert.with_-1545"><span class="linenos">1545</span></a><span class="sd"> &#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
</span><span id="Insert.with_-1546"><a href="#Insert.with_-1546"><span class="linenos">1546</span></a>
</span><span id="Insert.with_-1547"><a href="#Insert.with_-1547"><span class="linenos">1547</span></a><span class="sd"> Args:</span>
</span><span id="Insert.with_-1548"><a href="#Insert.with_-1548"><span class="linenos">1548</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
</span><span id="Insert.with_-1549"><a href="#Insert.with_-1549"><span class="linenos">1549</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
</span><span id="Insert.with_-1550"><a href="#Insert.with_-1550"><span class="linenos">1550</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
</span><span id="Insert.with_-1551"><a href="#Insert.with_-1551"><span class="linenos">1551</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Insert.with_-1552"><a href="#Insert.with_-1552"><span class="linenos">1552</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
</span><span id="Insert.with_-1553"><a href="#Insert.with_-1553"><span class="linenos">1553</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Insert.with_-1554"><a href="#Insert.with_-1554"><span class="linenos">1554</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="Insert.with_-1555"><a href="#Insert.with_-1555"><span class="linenos">1555</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Insert.with_-1556"><a href="#Insert.with_-1556"><span class="linenos">1556</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Insert.with_-1557"><a href="#Insert.with_-1557"><span class="linenos">1557</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Insert.with_-1558"><a href="#Insert.with_-1558"><span class="linenos">1558</span></a>
</span><span id="Insert.with_-1559"><a href="#Insert.with_-1559"><span class="linenos">1559</span></a><span class="sd"> Returns:</span>
</span><span id="Insert.with_-1560"><a href="#Insert.with_-1560"><span class="linenos">1560</span></a><span class="sd"> The modified expression.</span>
</span><span id="Insert.with_-1561"><a href="#Insert.with_-1561"><span class="linenos">1561</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Insert.with_-1562"><a href="#Insert.with_-1562"><span class="linenos">1562</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
</span><span id="Insert.with_-1563"><a href="#Insert.with_-1563"><span class="linenos">1563</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Insert.with_-1564"><a href="#Insert.with_-1564"><span class="linenos">1564</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Append to or set the common table expressions.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">insert</span><span class="p">(</span><span class="s2">&quot;SELECT x FROM cte&quot;</span><span class="p">,</span> <span class="s2">&quot;t&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">with_</span><span class="p">(</span><span class="s2">&quot;cte&quot;</span><span class="p">,</span> <span class="n">as_</span><span class="o">=</span><span class="s2">&quot;SELECT * FROM tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;WITH cte AS (SELECT * FROM tbl) INSERT INTO t SELECT x FROM cte&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>alias:</strong> the SQL code string to parse as the table name.
If an <code><a href="#Expression">Expression</a></code> instance is passed, this is used as-is.</li>
<li><strong>as_:</strong> the SQL code string to parse as the table expression.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>recursive:</strong> set the RECURSIVE part of the expression. Defaults to <code>False</code>.</li>
<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this resets the expressions.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified expression.</p>
</blockquote>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Insert.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Insert.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Insert.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Insert.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Insert.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Insert.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Insert.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Insert.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Insert.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Insert.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Insert.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Insert.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Insert.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Insert.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Insert.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Insert.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Insert.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Insert.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Insert.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Insert.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Insert.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Insert.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Insert.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Insert.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Insert.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Insert.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Insert.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Insert.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Insert.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Insert.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Insert.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Insert.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Insert.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Insert.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Insert.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Insert.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Insert.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Insert.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="OnConflict">
<input id="OnConflict-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">OnConflict</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="OnConflict-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#OnConflict"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="OnConflict-1567"><a href="#OnConflict-1567"><span class="linenos">1567</span></a><span class="k">class</span> <span class="nc">OnConflict</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="OnConflict-1568"><a href="#OnConflict-1568"><span class="linenos">1568</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="OnConflict-1569"><a href="#OnConflict-1569"><span class="linenos">1569</span></a> <span class="s2">&quot;duplicate&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="OnConflict-1570"><a href="#OnConflict-1570"><span class="linenos">1570</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="OnConflict-1571"><a href="#OnConflict-1571"><span class="linenos">1571</span></a> <span class="s2">&quot;nothing&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="OnConflict-1572"><a href="#OnConflict-1572"><span class="linenos">1572</span></a> <span class="s2">&quot;key&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="OnConflict-1573"><a href="#OnConflict-1573"><span class="linenos">1573</span></a> <span class="s2">&quot;constraint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="OnConflict-1574"><a href="#OnConflict-1574"><span class="linenos">1574</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="OnConflict.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="OnConflict.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="OnConflict.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="OnConflict.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="OnConflict.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="OnConflict.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="OnConflict.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="OnConflict.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="OnConflict.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="OnConflict.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="OnConflict.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OnConflict.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="OnConflict.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="OnConflict.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="OnConflict.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="OnConflict.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="OnConflict.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="OnConflict.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="OnConflict.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="OnConflict.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="OnConflict.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="OnConflict.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="OnConflict.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="OnConflict.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="OnConflict.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="OnConflict.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="OnConflict.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="OnConflict.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="OnConflict.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="OnConflict.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="OnConflict.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="OnConflict.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="OnConflict.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="OnConflict.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="OnConflict.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="OnConflict.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="OnConflict.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="OnConflict.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Returning">
<input id="Returning-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Returning</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Returning-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Returning"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Returning-1577"><a href="#Returning-1577"><span class="linenos">1577</span></a><span class="k">class</span> <span class="nc">Returning</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Returning-1578"><a href="#Returning-1578"><span class="linenos">1578</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Returning.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Returning.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Returning.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Returning.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Returning.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Returning.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Returning.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Returning.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Returning.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Returning.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Returning.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Returning.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Returning.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Returning.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Returning.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Returning.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Returning.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Returning.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Returning.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Returning.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Returning.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Returning.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Returning.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Returning.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Returning.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Returning.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Returning.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Returning.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Returning.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Returning.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Returning.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Returning.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Returning.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Returning.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Returning.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Returning.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Returning.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Returning.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Introducer">
<input id="Introducer-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Introducer</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Introducer-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Introducer"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Introducer-1582"><a href="#Introducer-1582"><span class="linenos">1582</span></a><span class="k">class</span> <span class="nc">Introducer</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Introducer-1583"><a href="#Introducer-1583"><span class="linenos">1583</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Introducer.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Introducer.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Introducer.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Introducer.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Introducer.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Introducer.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Introducer.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Introducer.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Introducer.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Introducer.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Introducer.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Introducer.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Introducer.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Introducer.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Introducer.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Introducer.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Introducer.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Introducer.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Introducer.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Introducer.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Introducer.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Introducer.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Introducer.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Introducer.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Introducer.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Introducer.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Introducer.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Introducer.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Introducer.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Introducer.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Introducer.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Introducer.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Introducer.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Introducer.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Introducer.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Introducer.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Introducer.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Introducer.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="National">
<input id="National-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">National</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="National-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#National"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="National-1587"><a href="#National-1587"><span class="linenos">1587</span></a><span class="k">class</span> <span class="nc">National</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="National-1588"><a href="#National-1588"><span class="linenos">1588</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="National.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="National.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="National.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="National.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="National.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="National.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="National.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="National.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="National.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="National.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="National.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="National.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="National.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="National.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="National.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="National.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="National.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="National.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="National.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="National.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="National.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="National.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="National.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="National.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="National.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="National.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="National.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="National.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="National.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="National.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="National.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="National.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="National.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="National.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="National.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="National.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="National.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="National.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="LoadData">
<input id="LoadData-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">LoadData</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="LoadData-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#LoadData"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="LoadData-1591"><a href="#LoadData-1591"><span class="linenos">1591</span></a><span class="k">class</span> <span class="nc">LoadData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="LoadData-1592"><a href="#LoadData-1592"><span class="linenos">1592</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="LoadData-1593"><a href="#LoadData-1593"><span class="linenos">1593</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="LoadData-1594"><a href="#LoadData-1594"><span class="linenos">1594</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="LoadData-1595"><a href="#LoadData-1595"><span class="linenos">1595</span></a> <span class="s2">&quot;overwrite&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="LoadData-1596"><a href="#LoadData-1596"><span class="linenos">1596</span></a> <span class="s2">&quot;inpath&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="LoadData-1597"><a href="#LoadData-1597"><span class="linenos">1597</span></a> <span class="s2">&quot;partition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="LoadData-1598"><a href="#LoadData-1598"><span class="linenos">1598</span></a> <span class="s2">&quot;input_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="LoadData-1599"><a href="#LoadData-1599"><span class="linenos">1599</span></a> <span class="s2">&quot;serde&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="LoadData-1600"><a href="#LoadData-1600"><span class="linenos">1600</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="LoadData.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="LoadData.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="LoadData.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="LoadData.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="LoadData.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="LoadData.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="LoadData.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="LoadData.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LoadData.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LoadData.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LoadData.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LoadData.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LoadData.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="LoadData.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LoadData.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LoadData.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="LoadData.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="LoadData.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="LoadData.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="LoadData.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="LoadData.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="LoadData.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="LoadData.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="LoadData.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="LoadData.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="LoadData.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="LoadData.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="LoadData.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LoadData.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LoadData.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="LoadData.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LoadData.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LoadData.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="LoadData.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="LoadData.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="LoadData.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="LoadData.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="LoadData.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Partition">
<input id="Partition-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Partition</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Partition-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Partition"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Partition-1603"><a href="#Partition-1603"><span class="linenos">1603</span></a><span class="k">class</span> <span class="nc">Partition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Partition-1604"><a href="#Partition-1604"><span class="linenos">1604</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Partition.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Partition.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Partition.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Partition.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Partition.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Partition.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Partition.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Partition.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Partition.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Partition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Partition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Partition.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Partition.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Partition.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Partition.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Partition.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Partition.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Partition.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Partition.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Partition.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Partition.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Partition.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Partition.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Partition.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Partition.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Partition.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Partition.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Partition.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Partition.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Partition.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Partition.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Partition.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Partition.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Partition.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Partition.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Partition.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Partition.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Partition.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Fetch">
<input id="Fetch-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Fetch</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Fetch-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Fetch"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Fetch-1607"><a href="#Fetch-1607"><span class="linenos">1607</span></a><span class="k">class</span> <span class="nc">Fetch</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Fetch-1608"><a href="#Fetch-1608"><span class="linenos">1608</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Fetch-1609"><a href="#Fetch-1609"><span class="linenos">1609</span></a> <span class="s2">&quot;direction&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Fetch-1610"><a href="#Fetch-1610"><span class="linenos">1610</span></a> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Fetch-1611"><a href="#Fetch-1611"><span class="linenos">1611</span></a> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Fetch-1612"><a href="#Fetch-1612"><span class="linenos">1612</span></a> <span class="s2">&quot;with_ties&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Fetch-1613"><a href="#Fetch-1613"><span class="linenos">1613</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Fetch.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Fetch.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Fetch.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Fetch.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Fetch.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Fetch.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Fetch.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Fetch.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Fetch.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Fetch.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Fetch.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Fetch.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Fetch.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Fetch.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Fetch.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Fetch.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Fetch.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Fetch.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Fetch.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Fetch.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Fetch.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Fetch.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Fetch.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Fetch.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Fetch.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Fetch.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Fetch.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Fetch.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Fetch.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Fetch.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Fetch.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Fetch.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Fetch.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Fetch.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Fetch.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Fetch.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Fetch.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Fetch.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Group">
<input id="Group-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Group</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Group-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Group"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Group-1616"><a href="#Group-1616"><span class="linenos">1616</span></a><span class="k">class</span> <span class="nc">Group</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Group-1617"><a href="#Group-1617"><span class="linenos">1617</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Group-1618"><a href="#Group-1618"><span class="linenos">1618</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Group-1619"><a href="#Group-1619"><span class="linenos">1619</span></a> <span class="s2">&quot;grouping_sets&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Group-1620"><a href="#Group-1620"><span class="linenos">1620</span></a> <span class="s2">&quot;cube&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Group-1621"><a href="#Group-1621"><span class="linenos">1621</span></a> <span class="s2">&quot;rollup&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Group-1622"><a href="#Group-1622"><span class="linenos">1622</span></a> <span class="s2">&quot;totals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Group-1623"><a href="#Group-1623"><span class="linenos">1623</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Group.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Group.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Group.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Group.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Group.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Group.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Group.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Group.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Group.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Group.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Group.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Group.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Group.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Group.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Group.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Group.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Group.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Group.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Group.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Group.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Group.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Group.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Group.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Group.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Group.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Group.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Group.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Group.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Group.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Group.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Group.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Group.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Group.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Group.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Group.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Group.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Group.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Group.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Lambda">
<input id="Lambda-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Lambda</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Lambda-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Lambda"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Lambda-1626"><a href="#Lambda-1626"><span class="linenos">1626</span></a><span class="k">class</span> <span class="nc">Lambda</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Lambda-1627"><a href="#Lambda-1627"><span class="linenos">1627</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Lambda.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Lambda.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Lambda.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Lambda.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Lambda.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Lambda.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Lambda.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Lambda.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Lambda.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Lambda.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Lambda.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Lambda.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Lambda.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Lambda.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Lambda.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Lambda.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Lambda.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Lambda.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Lambda.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Lambda.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Lambda.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Lambda.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Lambda.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Lambda.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Lambda.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Lambda.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Lambda.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Lambda.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Lambda.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Lambda.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Lambda.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Lambda.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Lambda.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Lambda.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Lambda.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Lambda.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Lambda.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Lambda.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Limit">
<input id="Limit-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Limit</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Limit-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Limit"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Limit-1630"><a href="#Limit-1630"><span class="linenos">1630</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Limit-1631"><a href="#Limit-1631"><span class="linenos">1631</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Limit.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Limit.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Limit.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Limit.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Limit.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Limit.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Limit.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Limit.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Limit.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Limit.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Limit.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Limit.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Limit.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Limit.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Limit.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Limit.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Limit.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Limit.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Limit.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Limit.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Limit.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Limit.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Limit.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Limit.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Limit.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Limit.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Limit.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Limit.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Limit.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Limit.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Limit.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Limit.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Limit.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Limit.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Limit.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Limit.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Limit.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Limit.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Literal">
<input id="Literal-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Literal</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
<label class="view-source-button" for="Literal-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Literal"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Literal-1634"><a href="#Literal-1634"><span class="linenos">1634</span></a><span class="k">class</span> <span class="nc">Literal</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="Literal-1635"><a href="#Literal-1635"><span class="linenos">1635</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;is_string&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="Literal-1636"><a href="#Literal-1636"><span class="linenos">1636</span></a>
</span><span id="Literal-1637"><a href="#Literal-1637"><span class="linenos">1637</span></a> <span class="nd">@property</span>
</span><span id="Literal-1638"><a href="#Literal-1638"><span class="linenos">1638</span></a> <span class="k">def</span> <span class="nf">hashable_args</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span>
</span><span id="Literal-1639"><a href="#Literal-1639"><span class="linenos">1639</span></a> <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</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;is_string&quot;</span><span class="p">))</span>
</span><span id="Literal-1640"><a href="#Literal-1640"><span class="linenos">1640</span></a>
</span><span id="Literal-1641"><a href="#Literal-1641"><span class="linenos">1641</span></a> <span class="nd">@classmethod</span>
</span><span id="Literal-1642"><a href="#Literal-1642"><span class="linenos">1642</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
</span><span id="Literal-1643"><a href="#Literal-1643"><span class="linenos">1643</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</span><span id="Literal-1644"><a href="#Literal-1644"><span class="linenos">1644</span></a>
</span><span id="Literal-1645"><a href="#Literal-1645"><span class="linenos">1645</span></a> <span class="nd">@classmethod</span>
</span><span id="Literal-1646"><a href="#Literal-1646"><span class="linenos">1646</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
</span><span id="Literal-1647"><a href="#Literal-1647"><span class="linenos">1647</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span><span id="Literal-1648"><a href="#Literal-1648"><span class="linenos">1648</span></a>
</span><span id="Literal-1649"><a href="#Literal-1649"><span class="linenos">1649</span></a> <span class="nd">@property</span>
</span><span id="Literal-1650"><a href="#Literal-1650"><span class="linenos">1650</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Literal-1651"><a href="#Literal-1651"><span class="linenos">1651</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
<div id="Literal.number" class="classattr">
<input id="Literal.number-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<div class="decorator">@classmethod</div>
<span class="def">def</span>
<span class="name">number</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">cls</span>, </span><span class="param"><span class="n">number</span></span><span class="return-annotation">) -> <span class="n"><a href="#Literal">sqlglot.expressions.Literal</a></span>:</span></span>
<label class="view-source-button" for="Literal.number-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Literal.number"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Literal.number-1641"><a href="#Literal.number-1641"><span class="linenos">1641</span></a> <span class="nd">@classmethod</span>
</span><span id="Literal.number-1642"><a href="#Literal.number-1642"><span class="linenos">1642</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
</span><span id="Literal.number-1643"><a href="#Literal.number-1643"><span class="linenos">1643</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</span></pre></div>
</div>
<div id="Literal.string" class="classattr">
<input id="Literal.string-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<div class="decorator">@classmethod</div>
<span class="def">def</span>
<span class="name">string</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">cls</span>, </span><span class="param"><span class="n">string</span></span><span class="return-annotation">) -> <span class="n"><a href="#Literal">sqlglot.expressions.Literal</a></span>:</span></span>
<label class="view-source-button" for="Literal.string-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Literal.string"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Literal.string-1645"><a href="#Literal.string-1645"><span class="linenos">1645</span></a> <span class="nd">@classmethod</span>
</span><span id="Literal.string-1646"><a href="#Literal.string-1646"><span class="linenos">1646</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Literal</span><span class="p">:</span>
</span><span id="Literal.string-1647"><a href="#Literal.string-1647"><span class="linenos">1647</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span></pre></div>
</div>
<div id="Literal.output_name" class="classattr">
<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
</div>
<a class="headerlink" href="#Literal.output_name"></a>
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT a&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;a&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT b AS c&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;c&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT 1 + 2&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;&#39;</span>
</code></pre>
</div>
</blockquote>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Literal.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Literal.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Literal.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Literal.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Literal.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Literal.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Literal.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Literal.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Literal.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Literal.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Literal.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Literal.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Literal.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Literal.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Literal.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Literal.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Literal.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Literal.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Literal.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Literal.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Literal.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Literal.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Literal.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Literal.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Literal.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Literal.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Literal.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Literal.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Literal.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Literal.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Literal.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Literal.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Literal.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Literal.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Literal.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Literal.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Literal.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Literal.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Literal.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Literal.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Literal.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Literal.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Literal.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Literal.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Literal.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Literal.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Literal.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Literal.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Literal.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Join">
<input id="Join-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Join</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Join-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Join"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Join-1654"><a href="#Join-1654"><span class="linenos">1654</span></a><span class="k">class</span> <span class="nc">Join</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Join-1655"><a href="#Join-1655"><span class="linenos">1655</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Join-1656"><a href="#Join-1656"><span class="linenos">1656</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Join-1657"><a href="#Join-1657"><span class="linenos">1657</span></a> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Join-1658"><a href="#Join-1658"><span class="linenos">1658</span></a> <span class="s2">&quot;side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Join-1659"><a href="#Join-1659"><span class="linenos">1659</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Join-1660"><a href="#Join-1660"><span class="linenos">1660</span></a> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Join-1661"><a href="#Join-1661"><span class="linenos">1661</span></a> <span class="s2">&quot;natural&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Join-1662"><a href="#Join-1662"><span class="linenos">1662</span></a> <span class="s2">&quot;global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Join-1663"><a href="#Join-1663"><span class="linenos">1663</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Join-1664"><a href="#Join-1664"><span class="linenos">1664</span></a> <span class="p">}</span>
</span><span id="Join-1665"><a href="#Join-1665"><span class="linenos">1665</span></a>
</span><span id="Join-1666"><a href="#Join-1666"><span class="linenos">1666</span></a> <span class="nd">@property</span>
</span><span id="Join-1667"><a href="#Join-1667"><span class="linenos">1667</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Join-1668"><a href="#Join-1668"><span class="linenos">1668</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
</span><span id="Join-1669"><a href="#Join-1669"><span class="linenos">1669</span></a>
</span><span id="Join-1670"><a href="#Join-1670"><span class="linenos">1670</span></a> <span class="nd">@property</span>
</span><span id="Join-1671"><a href="#Join-1671"><span class="linenos">1671</span></a> <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Join-1672"><a href="#Join-1672"><span class="linenos">1672</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
</span><span id="Join-1673"><a href="#Join-1673"><span class="linenos">1673</span></a>
</span><span id="Join-1674"><a href="#Join-1674"><span class="linenos">1674</span></a> <span class="nd">@property</span>
</span><span id="Join-1675"><a href="#Join-1675"><span class="linenos">1675</span></a> <span class="k">def</span> <span class="nf">hint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Join-1676"><a href="#Join-1676"><span class="linenos">1676</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;hint&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span>
</span><span id="Join-1677"><a href="#Join-1677"><span class="linenos">1677</span></a>
</span><span id="Join-1678"><a href="#Join-1678"><span class="linenos">1678</span></a> <span class="nd">@property</span>
</span><span id="Join-1679"><a href="#Join-1679"><span class="linenos">1679</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Join-1680"><a href="#Join-1680"><span class="linenos">1680</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span>
</span><span id="Join-1681"><a href="#Join-1681"><span class="linenos">1681</span></a>
</span><span id="Join-1682"><a href="#Join-1682"><span class="linenos">1682</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
</span><span id="Join-1683"><a href="#Join-1683"><span class="linenos">1683</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Join-1684"><a href="#Join-1684"><span class="linenos">1684</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Join-1685"><a href="#Join-1685"><span class="linenos">1685</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Join-1686"><a href="#Join-1686"><span class="linenos">1686</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Join-1687"><a href="#Join-1687"><span class="linenos">1687</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Join-1688"><a href="#Join-1688"><span class="linenos">1688</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Join-1689"><a href="#Join-1689"><span class="linenos">1689</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
</span><span id="Join-1690"><a href="#Join-1690"><span class="linenos">1690</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Join-1691"><a href="#Join-1691"><span class="linenos">1691</span></a><span class="sd"> Append to or set the ON expressions.</span>
</span><span id="Join-1692"><a href="#Join-1692"><span class="linenos">1692</span></a>
</span><span id="Join-1693"><a href="#Join-1693"><span class="linenos">1693</span></a><span class="sd"> Example:</span>
</span><span id="Join-1694"><a href="#Join-1694"><span class="linenos">1694</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="Join-1695"><a href="#Join-1695"><span class="linenos">1695</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).on(&quot;y = 1&quot;).sql()</span>
</span><span id="Join-1696"><a href="#Join-1696"><span class="linenos">1696</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
</span><span id="Join-1697"><a href="#Join-1697"><span class="linenos">1697</span></a>
</span><span id="Join-1698"><a href="#Join-1698"><span class="linenos">1698</span></a><span class="sd"> Args:</span>
</span><span id="Join-1699"><a href="#Join-1699"><span class="linenos">1699</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Join-1700"><a href="#Join-1700"><span class="linenos">1700</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Join-1701"><a href="#Join-1701"><span class="linenos">1701</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
</span><span id="Join-1702"><a href="#Join-1702"><span class="linenos">1702</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
</span><span id="Join-1703"><a href="#Join-1703"><span class="linenos">1703</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="Join-1704"><a href="#Join-1704"><span class="linenos">1704</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Join-1705"><a href="#Join-1705"><span class="linenos">1705</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Join-1706"><a href="#Join-1706"><span class="linenos">1706</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Join-1707"><a href="#Join-1707"><span class="linenos">1707</span></a>
</span><span id="Join-1708"><a href="#Join-1708"><span class="linenos">1708</span></a><span class="sd"> Returns:</span>
</span><span id="Join-1709"><a href="#Join-1709"><span class="linenos">1709</span></a><span class="sd"> The modified Join expression.</span>
</span><span id="Join-1710"><a href="#Join-1710"><span class="linenos">1710</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Join-1711"><a href="#Join-1711"><span class="linenos">1711</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="Join-1712"><a href="#Join-1712"><span class="linenos">1712</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Join-1713"><a href="#Join-1713"><span class="linenos">1713</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Join-1714"><a href="#Join-1714"><span class="linenos">1714</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;on&quot;</span><span class="p">,</span>
</span><span id="Join-1715"><a href="#Join-1715"><span class="linenos">1715</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Join-1716"><a href="#Join-1716"><span class="linenos">1716</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Join-1717"><a href="#Join-1717"><span class="linenos">1717</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Join-1718"><a href="#Join-1718"><span class="linenos">1718</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Join-1719"><a href="#Join-1719"><span class="linenos">1719</span></a> <span class="p">)</span>
</span><span id="Join-1720"><a href="#Join-1720"><span class="linenos">1720</span></a>
</span><span id="Join-1721"><a href="#Join-1721"><span class="linenos">1721</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
</span><span id="Join-1722"><a href="#Join-1722"><span class="linenos">1722</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="Join-1723"><a href="#Join-1723"><span class="linenos">1723</span></a>
</span><span id="Join-1724"><a href="#Join-1724"><span class="linenos">1724</span></a> <span class="k">return</span> <span class="n">join</span>
</span><span id="Join-1725"><a href="#Join-1725"><span class="linenos">1725</span></a>
</span><span id="Join-1726"><a href="#Join-1726"><span class="linenos">1726</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
</span><span id="Join-1727"><a href="#Join-1727"><span class="linenos">1727</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Join-1728"><a href="#Join-1728"><span class="linenos">1728</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Join-1729"><a href="#Join-1729"><span class="linenos">1729</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Join-1730"><a href="#Join-1730"><span class="linenos">1730</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Join-1731"><a href="#Join-1731"><span class="linenos">1731</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Join-1732"><a href="#Join-1732"><span class="linenos">1732</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Join-1733"><a href="#Join-1733"><span class="linenos">1733</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
</span><span id="Join-1734"><a href="#Join-1734"><span class="linenos">1734</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Join-1735"><a href="#Join-1735"><span class="linenos">1735</span></a><span class="sd"> Append to or set the USING expressions.</span>
</span><span id="Join-1736"><a href="#Join-1736"><span class="linenos">1736</span></a>
</span><span id="Join-1737"><a href="#Join-1737"><span class="linenos">1737</span></a><span class="sd"> Example:</span>
</span><span id="Join-1738"><a href="#Join-1738"><span class="linenos">1738</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="Join-1739"><a href="#Join-1739"><span class="linenos">1739</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).using(&quot;foo&quot;, &quot;bla&quot;).sql()</span>
</span><span id="Join-1740"><a href="#Join-1740"><span class="linenos">1740</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
</span><span id="Join-1741"><a href="#Join-1741"><span class="linenos">1741</span></a>
</span><span id="Join-1742"><a href="#Join-1742"><span class="linenos">1742</span></a><span class="sd"> Args:</span>
</span><span id="Join-1743"><a href="#Join-1743"><span class="linenos">1743</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Join-1744"><a href="#Join-1744"><span class="linenos">1744</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Join-1745"><a href="#Join-1745"><span class="linenos">1745</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
</span><span id="Join-1746"><a href="#Join-1746"><span class="linenos">1746</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="Join-1747"><a href="#Join-1747"><span class="linenos">1747</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Join-1748"><a href="#Join-1748"><span class="linenos">1748</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Join-1749"><a href="#Join-1749"><span class="linenos">1749</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Join-1750"><a href="#Join-1750"><span class="linenos">1750</span></a>
</span><span id="Join-1751"><a href="#Join-1751"><span class="linenos">1751</span></a><span class="sd"> Returns:</span>
</span><span id="Join-1752"><a href="#Join-1752"><span class="linenos">1752</span></a><span class="sd"> The modified Join expression.</span>
</span><span id="Join-1753"><a href="#Join-1753"><span class="linenos">1753</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Join-1754"><a href="#Join-1754"><span class="linenos">1754</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="Join-1755"><a href="#Join-1755"><span class="linenos">1755</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Join-1756"><a href="#Join-1756"><span class="linenos">1756</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Join-1757"><a href="#Join-1757"><span class="linenos">1757</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
</span><span id="Join-1758"><a href="#Join-1758"><span class="linenos">1758</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Join-1759"><a href="#Join-1759"><span class="linenos">1759</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Join-1760"><a href="#Join-1760"><span class="linenos">1760</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Join-1761"><a href="#Join-1761"><span class="linenos">1761</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Join-1762"><a href="#Join-1762"><span class="linenos">1762</span></a> <span class="p">)</span>
</span><span id="Join-1763"><a href="#Join-1763"><span class="linenos">1763</span></a>
</span><span id="Join-1764"><a href="#Join-1764"><span class="linenos">1764</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
</span><span id="Join-1765"><a href="#Join-1765"><span class="linenos">1765</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="Join-1766"><a href="#Join-1766"><span class="linenos">1766</span></a>
</span><span id="Join-1767"><a href="#Join-1767"><span class="linenos">1767</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
<div id="Join.on" class="classattr">
<input id="Join.on-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">on</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Join">sqlglot.expressions.Join</a></span>:</span></span>
<label class="view-source-button" for="Join.on-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Join.on"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Join.on-1682"><a href="#Join.on-1682"><span class="linenos">1682</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span>
</span><span id="Join.on-1683"><a href="#Join.on-1683"><span class="linenos">1683</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Join.on-1684"><a href="#Join.on-1684"><span class="linenos">1684</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Join.on-1685"><a href="#Join.on-1685"><span class="linenos">1685</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Join.on-1686"><a href="#Join.on-1686"><span class="linenos">1686</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Join.on-1687"><a href="#Join.on-1687"><span class="linenos">1687</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Join.on-1688"><a href="#Join.on-1688"><span class="linenos">1688</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Join.on-1689"><a href="#Join.on-1689"><span class="linenos">1689</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
</span><span id="Join.on-1690"><a href="#Join.on-1690"><span class="linenos">1690</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Join.on-1691"><a href="#Join.on-1691"><span class="linenos">1691</span></a><span class="sd"> Append to or set the ON expressions.</span>
</span><span id="Join.on-1692"><a href="#Join.on-1692"><span class="linenos">1692</span></a>
</span><span id="Join.on-1693"><a href="#Join.on-1693"><span class="linenos">1693</span></a><span class="sd"> Example:</span>
</span><span id="Join.on-1694"><a href="#Join.on-1694"><span class="linenos">1694</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="Join.on-1695"><a href="#Join.on-1695"><span class="linenos">1695</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).on(&quot;y = 1&quot;).sql()</span>
</span><span id="Join.on-1696"><a href="#Join.on-1696"><span class="linenos">1696</span></a><span class="sd"> &#39;JOIN x ON y = 1&#39;</span>
</span><span id="Join.on-1697"><a href="#Join.on-1697"><span class="linenos">1697</span></a>
</span><span id="Join.on-1698"><a href="#Join.on-1698"><span class="linenos">1698</span></a><span class="sd"> Args:</span>
</span><span id="Join.on-1699"><a href="#Join.on-1699"><span class="linenos">1699</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Join.on-1700"><a href="#Join.on-1700"><span class="linenos">1700</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Join.on-1701"><a href="#Join.on-1701"><span class="linenos">1701</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
</span><span id="Join.on-1702"><a href="#Join.on-1702"><span class="linenos">1702</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
</span><span id="Join.on-1703"><a href="#Join.on-1703"><span class="linenos">1703</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="Join.on-1704"><a href="#Join.on-1704"><span class="linenos">1704</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Join.on-1705"><a href="#Join.on-1705"><span class="linenos">1705</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Join.on-1706"><a href="#Join.on-1706"><span class="linenos">1706</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Join.on-1707"><a href="#Join.on-1707"><span class="linenos">1707</span></a>
</span><span id="Join.on-1708"><a href="#Join.on-1708"><span class="linenos">1708</span></a><span class="sd"> Returns:</span>
</span><span id="Join.on-1709"><a href="#Join.on-1709"><span class="linenos">1709</span></a><span class="sd"> The modified Join expression.</span>
</span><span id="Join.on-1710"><a href="#Join.on-1710"><span class="linenos">1710</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Join.on-1711"><a href="#Join.on-1711"><span class="linenos">1711</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="Join.on-1712"><a href="#Join.on-1712"><span class="linenos">1712</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Join.on-1713"><a href="#Join.on-1713"><span class="linenos">1713</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Join.on-1714"><a href="#Join.on-1714"><span class="linenos">1714</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;on&quot;</span><span class="p">,</span>
</span><span id="Join.on-1715"><a href="#Join.on-1715"><span class="linenos">1715</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Join.on-1716"><a href="#Join.on-1716"><span class="linenos">1716</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Join.on-1717"><a href="#Join.on-1717"><span class="linenos">1717</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Join.on-1718"><a href="#Join.on-1718"><span class="linenos">1718</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Join.on-1719"><a href="#Join.on-1719"><span class="linenos">1719</span></a> <span class="p">)</span>
</span><span id="Join.on-1720"><a href="#Join.on-1720"><span class="linenos">1720</span></a>
</span><span id="Join.on-1721"><a href="#Join.on-1721"><span class="linenos">1721</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
</span><span id="Join.on-1722"><a href="#Join.on-1722"><span class="linenos">1722</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="Join.on-1723"><a href="#Join.on-1723"><span class="linenos">1723</span></a>
</span><span id="Join.on-1724"><a href="#Join.on-1724"><span class="linenos">1724</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
<div class="docstring"><p>Append to or set the ON expressions.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">sqlglot</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n"><a href="../sqlglot.html#parse_one">sqlglot.parse_one</a></span><span class="p">(</span><span class="s2">&quot;JOIN x&quot;</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Join</span><span class="p">)</span><span class="o">.</span><span class="n">on</span><span class="p">(</span><span class="s2">&quot;y = 1&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;JOIN x ON y = 1&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.
Multiple expressions are combined with an AND operator.</li>
<li><strong>append:</strong> if <code>True</code>, AND the new expressions to any existing expression.
Otherwise, this resets the expression.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified Join expression.</p>
</blockquote>
</div>
</div>
<div id="Join.using" class="classattr">
<input id="Join.using-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">using</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Join">sqlglot.expressions.Join</a></span>:</span></span>
<label class="view-source-button" for="Join.using-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Join.using"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Join.using-1726"><a href="#Join.using-1726"><span class="linenos">1726</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span>
</span><span id="Join.using-1727"><a href="#Join.using-1727"><span class="linenos">1727</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Join.using-1728"><a href="#Join.using-1728"><span class="linenos">1728</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Join.using-1729"><a href="#Join.using-1729"><span class="linenos">1729</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Join.using-1730"><a href="#Join.using-1730"><span class="linenos">1730</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Join.using-1731"><a href="#Join.using-1731"><span class="linenos">1731</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Join.using-1732"><a href="#Join.using-1732"><span class="linenos">1732</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Join.using-1733"><a href="#Join.using-1733"><span class="linenos">1733</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Join</span><span class="p">:</span>
</span><span id="Join.using-1734"><a href="#Join.using-1734"><span class="linenos">1734</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Join.using-1735"><a href="#Join.using-1735"><span class="linenos">1735</span></a><span class="sd"> Append to or set the USING expressions.</span>
</span><span id="Join.using-1736"><a href="#Join.using-1736"><span class="linenos">1736</span></a>
</span><span id="Join.using-1737"><a href="#Join.using-1737"><span class="linenos">1737</span></a><span class="sd"> Example:</span>
</span><span id="Join.using-1738"><a href="#Join.using-1738"><span class="linenos">1738</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="Join.using-1739"><a href="#Join.using-1739"><span class="linenos">1739</span></a><span class="sd"> &gt;&gt;&gt; sqlglot.parse_one(&quot;JOIN x&quot;, into=Join).using(&quot;foo&quot;, &quot;bla&quot;).sql()</span>
</span><span id="Join.using-1740"><a href="#Join.using-1740"><span class="linenos">1740</span></a><span class="sd"> &#39;JOIN x USING (foo, bla)&#39;</span>
</span><span id="Join.using-1741"><a href="#Join.using-1741"><span class="linenos">1741</span></a>
</span><span id="Join.using-1742"><a href="#Join.using-1742"><span class="linenos">1742</span></a><span class="sd"> Args:</span>
</span><span id="Join.using-1743"><a href="#Join.using-1743"><span class="linenos">1743</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Join.using-1744"><a href="#Join.using-1744"><span class="linenos">1744</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Join.using-1745"><a href="#Join.using-1745"><span class="linenos">1745</span></a><span class="sd"> append: if `True`, concatenate the new expressions to the existing &quot;using&quot; list.</span>
</span><span id="Join.using-1746"><a href="#Join.using-1746"><span class="linenos">1746</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="Join.using-1747"><a href="#Join.using-1747"><span class="linenos">1747</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Join.using-1748"><a href="#Join.using-1748"><span class="linenos">1748</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Join.using-1749"><a href="#Join.using-1749"><span class="linenos">1749</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Join.using-1750"><a href="#Join.using-1750"><span class="linenos">1750</span></a>
</span><span id="Join.using-1751"><a href="#Join.using-1751"><span class="linenos">1751</span></a><span class="sd"> Returns:</span>
</span><span id="Join.using-1752"><a href="#Join.using-1752"><span class="linenos">1752</span></a><span class="sd"> The modified Join expression.</span>
</span><span id="Join.using-1753"><a href="#Join.using-1753"><span class="linenos">1753</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Join.using-1754"><a href="#Join.using-1754"><span class="linenos">1754</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="Join.using-1755"><a href="#Join.using-1755"><span class="linenos">1755</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Join.using-1756"><a href="#Join.using-1756"><span class="linenos">1756</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Join.using-1757"><a href="#Join.using-1757"><span class="linenos">1757</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
</span><span id="Join.using-1758"><a href="#Join.using-1758"><span class="linenos">1758</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Join.using-1759"><a href="#Join.using-1759"><span class="linenos">1759</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Join.using-1760"><a href="#Join.using-1760"><span class="linenos">1760</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Join.using-1761"><a href="#Join.using-1761"><span class="linenos">1761</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Join.using-1762"><a href="#Join.using-1762"><span class="linenos">1762</span></a> <span class="p">)</span>
</span><span id="Join.using-1763"><a href="#Join.using-1763"><span class="linenos">1763</span></a>
</span><span id="Join.using-1764"><a href="#Join.using-1764"><span class="linenos">1764</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">&quot;CROSS&quot;</span><span class="p">:</span>
</span><span id="Join.using-1765"><a href="#Join.using-1765"><span class="linenos">1765</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="Join.using-1766"><a href="#Join.using-1766"><span class="linenos">1766</span></a>
</span><span id="Join.using-1767"><a href="#Join.using-1767"><span class="linenos">1767</span></a> <span class="k">return</span> <span class="n">join</span>
</span></pre></div>
<div class="docstring"><p>Append to or set the USING expressions.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">sqlglot</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n"><a href="../sqlglot.html#parse_one">sqlglot.parse_one</a></span><span class="p">(</span><span class="s2">&quot;JOIN x&quot;</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Join</span><span class="p">)</span><span class="o">.</span><span class="n">using</span><span class="p">(</span><span class="s2">&quot;foo&quot;</span><span class="p">,</span> <span class="s2">&quot;bla&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;JOIN x USING (foo, bla)&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>append:</strong> if <code>True</code>, concatenate the new expressions to the existing "using" list.
Otherwise, this resets the expression.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified Join expression.</p>
</blockquote>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Join.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Join.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Join.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Join.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Join.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Join.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Join.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Join.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Join.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Join.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Join.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Join.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Join.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Join.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Join.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Join.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Join.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Join.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Join.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Join.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Join.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Join.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Join.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Join.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Join.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Join.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Join.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Join.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Join.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Join.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Join.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Join.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Join.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Join.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Join.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Join.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Join.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Join.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Lateral">
<input id="Lateral-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Lateral</span><wbr>(<span class="base"><a href="#UDTF">UDTF</a></span>):
<label class="view-source-button" for="Lateral-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Lateral"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Lateral-1770"><a href="#Lateral-1770"><span class="linenos">1770</span></a><span class="k">class</span> <span class="nc">Lateral</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
</span><span id="Lateral-1771"><a href="#Lateral-1771"><span class="linenos">1771</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;view&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;outer&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Lateral.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Lateral.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Lateral.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Lateral.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Lateral.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Lateral.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Lateral.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Lateral.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Lateral.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Lateral.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Lateral.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Lateral.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Lateral.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Lateral.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Lateral.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Lateral.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Lateral.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Lateral.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Lateral.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Lateral.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Lateral.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Lateral.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Lateral.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Lateral.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Lateral.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Lateral.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Lateral.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Lateral.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Lateral.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Lateral.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Lateral.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Lateral.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Lateral.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Lateral.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Lateral.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Lateral.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Lateral.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Lateral.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
<dd id="Lateral.union" class="function"><a href="#Unionable.union">union</a></dd>
<dd id="Lateral.intersect" class="function"><a href="#Unionable.intersect">intersect</a></dd>
<dd id="Lateral.except_" class="function"><a href="#Unionable.except_">except_</a></dd>
</div>
</dl>
</div>
</section>
<section id="MatchRecognize">
<input id="MatchRecognize-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">MatchRecognize</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="MatchRecognize-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#MatchRecognize"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MatchRecognize-1774"><a href="#MatchRecognize-1774"><span class="linenos">1774</span></a><span class="k">class</span> <span class="nc">MatchRecognize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="MatchRecognize-1775"><a href="#MatchRecognize-1775"><span class="linenos">1775</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="MatchRecognize-1776"><a href="#MatchRecognize-1776"><span class="linenos">1776</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MatchRecognize-1777"><a href="#MatchRecognize-1777"><span class="linenos">1777</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MatchRecognize-1778"><a href="#MatchRecognize-1778"><span class="linenos">1778</span></a> <span class="s2">&quot;measures&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MatchRecognize-1779"><a href="#MatchRecognize-1779"><span class="linenos">1779</span></a> <span class="s2">&quot;rows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MatchRecognize-1780"><a href="#MatchRecognize-1780"><span class="linenos">1780</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MatchRecognize-1781"><a href="#MatchRecognize-1781"><span class="linenos">1781</span></a> <span class="s2">&quot;pattern&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MatchRecognize-1782"><a href="#MatchRecognize-1782"><span class="linenos">1782</span></a> <span class="s2">&quot;define&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MatchRecognize-1783"><a href="#MatchRecognize-1783"><span class="linenos">1783</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="MatchRecognize-1784"><a href="#MatchRecognize-1784"><span class="linenos">1784</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="MatchRecognize.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="MatchRecognize.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="MatchRecognize.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="MatchRecognize.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="MatchRecognize.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="MatchRecognize.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="MatchRecognize.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="MatchRecognize.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MatchRecognize.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MatchRecognize.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="MatchRecognize.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MatchRecognize.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MatchRecognize.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="MatchRecognize.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="MatchRecognize.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="MatchRecognize.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="MatchRecognize.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="MatchRecognize.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="MatchRecognize.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="MatchRecognize.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="MatchRecognize.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="MatchRecognize.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="MatchRecognize.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="MatchRecognize.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="MatchRecognize.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="MatchRecognize.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="MatchRecognize.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="MatchRecognize.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MatchRecognize.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MatchRecognize.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="MatchRecognize.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MatchRecognize.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MatchRecognize.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="MatchRecognize.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="MatchRecognize.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="MatchRecognize.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="MatchRecognize.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="MatchRecognize.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Final">
<input id="Final-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Final</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Final-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Final"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Final-1789"><a href="#Final-1789"><span class="linenos">1789</span></a><span class="k">class</span> <span class="nc">Final</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Final-1790"><a href="#Final-1790"><span class="linenos">1790</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Final.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Final.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Final.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Final.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Final.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Final.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Final.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Final.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Final.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Final.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Final.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Final.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Final.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Final.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Final.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Final.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Final.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Final.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Final.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Final.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Final.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Final.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Final.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Final.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Final.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Final.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Final.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Final.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Final.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Final.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Final.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Final.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Final.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Final.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Final.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Final.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Final.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Final.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Offset">
<input id="Offset-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Offset</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Offset-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Offset"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Offset-1793"><a href="#Offset-1793"><span class="linenos">1793</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Offset-1794"><a href="#Offset-1794"><span class="linenos">1794</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Offset.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Offset.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Offset.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Offset.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Offset.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Offset.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Offset.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Offset.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Offset.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Offset.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Offset.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Offset.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Offset.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Offset.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Offset.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Offset.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Offset.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Offset.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Offset.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Offset.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Offset.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Offset.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Offset.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Offset.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Offset.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Offset.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Offset.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Offset.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Offset.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Offset.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Offset.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Offset.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Offset.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Offset.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Offset.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Offset.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Offset.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Offset.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Order">
<input id="Order-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Order</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Order-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Order"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Order-1797"><a href="#Order-1797"><span class="linenos">1797</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Order-1798"><a href="#Order-1798"><span class="linenos">1798</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Order.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Order.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Order.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Order.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Order.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Order.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Order.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Order.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Order.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Order.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Order.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Order.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Order.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Order.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Order.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Order.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Order.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Order.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Order.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Order.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Order.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Order.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Order.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Order.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Order.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Order.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Order.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Order.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Order.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Order.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Order.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Order.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Order.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Order.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Order.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Order.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Order.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Order.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Cluster">
<input id="Cluster-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Cluster</span><wbr>(<span class="base"><a href="#Order">Order</a></span>):
<label class="view-source-button" for="Cluster-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Cluster"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Cluster-1803"><a href="#Cluster-1803"><span class="linenos">1803</span></a><span class="k">class</span> <span class="nc">Cluster</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
</span><span id="Cluster-1804"><a href="#Cluster-1804"><span class="linenos">1804</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Cluster.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Cluster.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Cluster.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Cluster.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Cluster.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Cluster.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Cluster.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Cluster.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Cluster.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Cluster.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Cluster.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Cluster.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Cluster.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Cluster.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Cluster.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Cluster.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Cluster.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Cluster.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Cluster.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Cluster.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Cluster.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Cluster.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Cluster.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Cluster.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Cluster.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Cluster.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Cluster.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Cluster.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Cluster.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Cluster.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Cluster.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Cluster.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Cluster.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Cluster.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Cluster.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Cluster.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Cluster.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Cluster.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Distribute">
<input id="Distribute-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Distribute</span><wbr>(<span class="base"><a href="#Order">Order</a></span>):
<label class="view-source-button" for="Distribute-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Distribute"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Distribute-1807"><a href="#Distribute-1807"><span class="linenos">1807</span></a><span class="k">class</span> <span class="nc">Distribute</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
</span><span id="Distribute-1808"><a href="#Distribute-1808"><span class="linenos">1808</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Distribute.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Distribute.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Distribute.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Distribute.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Distribute.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Distribute.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Distribute.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Distribute.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Distribute.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Distribute.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Distribute.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Distribute.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Distribute.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Distribute.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Distribute.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Distribute.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Distribute.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Distribute.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Distribute.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Distribute.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Distribute.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Distribute.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Distribute.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Distribute.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Distribute.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Distribute.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Distribute.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Distribute.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Distribute.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Distribute.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Distribute.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Distribute.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Distribute.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Distribute.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Distribute.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Distribute.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Distribute.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Distribute.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Sort">
<input id="Sort-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Sort</span><wbr>(<span class="base"><a href="#Order">Order</a></span>):
<label class="view-source-button" for="Sort-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Sort"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Sort-1811"><a href="#Sort-1811"><span class="linenos">1811</span></a><span class="k">class</span> <span class="nc">Sort</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span>
</span><span id="Sort-1812"><a href="#Sort-1812"><span class="linenos">1812</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Sort.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Sort.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Sort.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Sort.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Sort.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Sort.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Sort.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Sort.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Sort.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Sort.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Sort.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Sort.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Sort.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Sort.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Sort.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Sort.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Sort.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Sort.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Sort.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Sort.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Sort.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Sort.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Sort.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Sort.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Sort.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Sort.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Sort.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Sort.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Sort.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Sort.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Sort.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Sort.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Sort.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Sort.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Sort.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Sort.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Sort.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Sort.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Ordered">
<input id="Ordered-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Ordered</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Ordered-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Ordered"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Ordered-1815"><a href="#Ordered-1815"><span class="linenos">1815</span></a><span class="k">class</span> <span class="nc">Ordered</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Ordered-1816"><a href="#Ordered-1816"><span class="linenos">1816</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;nulls_first&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Ordered.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Ordered.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Ordered.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Ordered.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Ordered.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Ordered.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Ordered.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Ordered.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Ordered.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Ordered.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Ordered.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Ordered.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Ordered.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Ordered.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Ordered.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Ordered.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Ordered.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Ordered.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Ordered.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Ordered.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Ordered.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Ordered.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Ordered.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Ordered.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Ordered.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Ordered.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Ordered.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Ordered.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Ordered.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Ordered.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Ordered.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Ordered.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Ordered.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Ordered.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Ordered.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Ordered.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Ordered.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Ordered.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Property">
<input id="Property-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Property</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Property-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Property"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Property-1819"><a href="#Property-1819"><span class="linenos">1819</span></a><span class="k">class</span> <span class="nc">Property</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Property-1820"><a href="#Property-1820"><span class="linenos">1820</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Property.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Property.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Property.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Property.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Property.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Property.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Property.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Property.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Property.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Property.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Property.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Property.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Property.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Property.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Property.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Property.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Property.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Property.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Property.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Property.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Property.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Property.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Property.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Property.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Property.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Property.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Property.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Property.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Property.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Property.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Property.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Property.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Property.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Property.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Property.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Property.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Property.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Property.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="AlgorithmProperty">
<input id="AlgorithmProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">AlgorithmProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="AlgorithmProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#AlgorithmProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="AlgorithmProperty-1823"><a href="#AlgorithmProperty-1823"><span class="linenos">1823</span></a><span class="k">class</span> <span class="nc">AlgorithmProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="AlgorithmProperty-1824"><a href="#AlgorithmProperty-1824"><span class="linenos">1824</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="AlgorithmProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="AlgorithmProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="AlgorithmProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="AlgorithmProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="AlgorithmProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="AlgorithmProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="AlgorithmProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="AlgorithmProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AlgorithmProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AlgorithmProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AlgorithmProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AlgorithmProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AlgorithmProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="AlgorithmProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AlgorithmProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AlgorithmProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="AlgorithmProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="AlgorithmProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="AlgorithmProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="AlgorithmProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="AlgorithmProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="AlgorithmProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="AlgorithmProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="AlgorithmProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="AlgorithmProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="AlgorithmProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="AlgorithmProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="AlgorithmProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AlgorithmProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AlgorithmProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="AlgorithmProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AlgorithmProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AlgorithmProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="AlgorithmProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="AlgorithmProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="AlgorithmProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="AlgorithmProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="AlgorithmProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="AutoIncrementProperty">
<input id="AutoIncrementProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">AutoIncrementProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="AutoIncrementProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#AutoIncrementProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="AutoIncrementProperty-1827"><a href="#AutoIncrementProperty-1827"><span class="linenos">1827</span></a><span class="k">class</span> <span class="nc">AutoIncrementProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="AutoIncrementProperty-1828"><a href="#AutoIncrementProperty-1828"><span class="linenos">1828</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="AutoIncrementProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="AutoIncrementProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="AutoIncrementProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="AutoIncrementProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="AutoIncrementProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="AutoIncrementProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="AutoIncrementProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="AutoIncrementProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AutoIncrementProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AutoIncrementProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AutoIncrementProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AutoIncrementProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AutoIncrementProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="AutoIncrementProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AutoIncrementProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AutoIncrementProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="AutoIncrementProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="AutoIncrementProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="AutoIncrementProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="AutoIncrementProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="AutoIncrementProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="AutoIncrementProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="AutoIncrementProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="AutoIncrementProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="AutoIncrementProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="AutoIncrementProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="AutoIncrementProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="AutoIncrementProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AutoIncrementProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AutoIncrementProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="AutoIncrementProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AutoIncrementProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AutoIncrementProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="AutoIncrementProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="AutoIncrementProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="AutoIncrementProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="AutoIncrementProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="AutoIncrementProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="BlockCompressionProperty">
<input id="BlockCompressionProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">BlockCompressionProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="BlockCompressionProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#BlockCompressionProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="BlockCompressionProperty-1831"><a href="#BlockCompressionProperty-1831"><span class="linenos">1831</span></a><span class="k">class</span> <span class="nc">BlockCompressionProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="BlockCompressionProperty-1832"><a href="#BlockCompressionProperty-1832"><span class="linenos">1832</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;autotemp&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;always&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;manual&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;never&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="BlockCompressionProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="BlockCompressionProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="BlockCompressionProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="BlockCompressionProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="BlockCompressionProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="BlockCompressionProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="BlockCompressionProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="BlockCompressionProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BlockCompressionProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BlockCompressionProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BlockCompressionProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BlockCompressionProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BlockCompressionProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="BlockCompressionProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BlockCompressionProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BlockCompressionProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="BlockCompressionProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="BlockCompressionProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="BlockCompressionProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="BlockCompressionProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="BlockCompressionProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="BlockCompressionProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="BlockCompressionProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="BlockCompressionProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="BlockCompressionProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="BlockCompressionProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="BlockCompressionProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="BlockCompressionProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BlockCompressionProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BlockCompressionProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="BlockCompressionProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BlockCompressionProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BlockCompressionProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="BlockCompressionProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="BlockCompressionProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="BlockCompressionProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="BlockCompressionProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="BlockCompressionProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="CharacterSetProperty">
<input id="CharacterSetProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CharacterSetProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="CharacterSetProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CharacterSetProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CharacterSetProperty-1835"><a href="#CharacterSetProperty-1835"><span class="linenos">1835</span></a><span class="k">class</span> <span class="nc">CharacterSetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="CharacterSetProperty-1836"><a href="#CharacterSetProperty-1836"><span class="linenos">1836</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CharacterSetProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CharacterSetProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CharacterSetProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CharacterSetProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CharacterSetProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CharacterSetProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CharacterSetProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CharacterSetProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CharacterSetProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CharacterSetProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CharacterSetProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CharacterSetProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CharacterSetProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CharacterSetProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CharacterSetProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CharacterSetProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CharacterSetProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CharacterSetProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CharacterSetProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CharacterSetProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CharacterSetProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CharacterSetProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CharacterSetProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CharacterSetProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CharacterSetProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CharacterSetProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CharacterSetProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CharacterSetProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CharacterSetProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CharacterSetProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CharacterSetProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CharacterSetProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CharacterSetProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CharacterSetProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CharacterSetProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CharacterSetProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CharacterSetProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CharacterSetProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="ChecksumProperty">
<input id="ChecksumProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ChecksumProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="ChecksumProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ChecksumProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ChecksumProperty-1839"><a href="#ChecksumProperty-1839"><span class="linenos">1839</span></a><span class="k">class</span> <span class="nc">ChecksumProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="ChecksumProperty-1840"><a href="#ChecksumProperty-1840"><span class="linenos">1840</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ChecksumProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ChecksumProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ChecksumProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ChecksumProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ChecksumProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ChecksumProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ChecksumProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ChecksumProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ChecksumProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ChecksumProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ChecksumProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ChecksumProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ChecksumProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ChecksumProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ChecksumProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ChecksumProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ChecksumProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ChecksumProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ChecksumProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ChecksumProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ChecksumProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ChecksumProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ChecksumProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ChecksumProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ChecksumProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ChecksumProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ChecksumProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ChecksumProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ChecksumProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ChecksumProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ChecksumProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ChecksumProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ChecksumProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ChecksumProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ChecksumProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ChecksumProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ChecksumProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ChecksumProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="CollateProperty">
<input id="CollateProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CollateProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="CollateProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CollateProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CollateProperty-1843"><a href="#CollateProperty-1843"><span class="linenos">1843</span></a><span class="k">class</span> <span class="nc">CollateProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="CollateProperty-1844"><a href="#CollateProperty-1844"><span class="linenos">1844</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CollateProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CollateProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CollateProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CollateProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CollateProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CollateProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CollateProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CollateProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CollateProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CollateProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CollateProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CollateProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CollateProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CollateProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CollateProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CollateProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CollateProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CollateProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CollateProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CollateProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CollateProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CollateProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CollateProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CollateProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CollateProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CollateProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CollateProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CollateProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CollateProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CollateProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CollateProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CollateProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CollateProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CollateProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CollateProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CollateProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CollateProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CollateProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DataBlocksizeProperty">
<input id="DataBlocksizeProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DataBlocksizeProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="DataBlocksizeProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DataBlocksizeProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DataBlocksizeProperty-1847"><a href="#DataBlocksizeProperty-1847"><span class="linenos">1847</span></a><span class="k">class</span> <span class="nc">DataBlocksizeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="DataBlocksizeProperty-1848"><a href="#DataBlocksizeProperty-1848"><span class="linenos">1848</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="DataBlocksizeProperty-1849"><a href="#DataBlocksizeProperty-1849"><span class="linenos">1849</span></a> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="DataBlocksizeProperty-1850"><a href="#DataBlocksizeProperty-1850"><span class="linenos">1850</span></a> <span class="s2">&quot;units&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="DataBlocksizeProperty-1851"><a href="#DataBlocksizeProperty-1851"><span class="linenos">1851</span></a> <span class="s2">&quot;minimum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="DataBlocksizeProperty-1852"><a href="#DataBlocksizeProperty-1852"><span class="linenos">1852</span></a> <span class="s2">&quot;maximum&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="DataBlocksizeProperty-1853"><a href="#DataBlocksizeProperty-1853"><span class="linenos">1853</span></a> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="DataBlocksizeProperty-1854"><a href="#DataBlocksizeProperty-1854"><span class="linenos">1854</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DataBlocksizeProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DataBlocksizeProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DataBlocksizeProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DataBlocksizeProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DataBlocksizeProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DataBlocksizeProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DataBlocksizeProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DataBlocksizeProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DataBlocksizeProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DataBlocksizeProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DataBlocksizeProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DataBlocksizeProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DataBlocksizeProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DataBlocksizeProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DataBlocksizeProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DataBlocksizeProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DataBlocksizeProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DataBlocksizeProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DataBlocksizeProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DataBlocksizeProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DataBlocksizeProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DataBlocksizeProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DataBlocksizeProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DataBlocksizeProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DataBlocksizeProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DataBlocksizeProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DataBlocksizeProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DataBlocksizeProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DataBlocksizeProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DataBlocksizeProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DataBlocksizeProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DataBlocksizeProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DataBlocksizeProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DataBlocksizeProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DataBlocksizeProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DataBlocksizeProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DataBlocksizeProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DataBlocksizeProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DefinerProperty">
<input id="DefinerProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DefinerProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="DefinerProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DefinerProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DefinerProperty-1857"><a href="#DefinerProperty-1857"><span class="linenos">1857</span></a><span class="k">class</span> <span class="nc">DefinerProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="DefinerProperty-1858"><a href="#DefinerProperty-1858"><span class="linenos">1858</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DefinerProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DefinerProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DefinerProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DefinerProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DefinerProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DefinerProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DefinerProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DefinerProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DefinerProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DefinerProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DefinerProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DefinerProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DefinerProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DefinerProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DefinerProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DefinerProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DefinerProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DefinerProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DefinerProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DefinerProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DefinerProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DefinerProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DefinerProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DefinerProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DefinerProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DefinerProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DefinerProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DefinerProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DefinerProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DefinerProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DefinerProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DefinerProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DefinerProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DefinerProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DefinerProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DefinerProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DefinerProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DefinerProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DistKeyProperty">
<input id="DistKeyProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DistKeyProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="DistKeyProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DistKeyProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DistKeyProperty-1861"><a href="#DistKeyProperty-1861"><span class="linenos">1861</span></a><span class="k">class</span> <span class="nc">DistKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="DistKeyProperty-1862"><a href="#DistKeyProperty-1862"><span class="linenos">1862</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DistKeyProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DistKeyProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DistKeyProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DistKeyProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DistKeyProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DistKeyProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DistKeyProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DistKeyProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DistKeyProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DistKeyProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DistKeyProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DistKeyProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DistKeyProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DistKeyProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DistKeyProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DistKeyProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DistKeyProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DistKeyProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DistKeyProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DistKeyProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DistKeyProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DistKeyProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DistKeyProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DistKeyProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DistKeyProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DistKeyProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DistKeyProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DistKeyProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DistKeyProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DistKeyProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DistKeyProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DistKeyProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DistKeyProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DistKeyProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DistKeyProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DistKeyProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DistKeyProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DistKeyProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DistStyleProperty">
<input id="DistStyleProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DistStyleProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="DistStyleProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DistStyleProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DistStyleProperty-1865"><a href="#DistStyleProperty-1865"><span class="linenos">1865</span></a><span class="k">class</span> <span class="nc">DistStyleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="DistStyleProperty-1866"><a href="#DistStyleProperty-1866"><span class="linenos">1866</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DistStyleProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DistStyleProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DistStyleProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DistStyleProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DistStyleProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DistStyleProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DistStyleProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DistStyleProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DistStyleProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DistStyleProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DistStyleProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DistStyleProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DistStyleProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DistStyleProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DistStyleProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DistStyleProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DistStyleProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DistStyleProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DistStyleProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DistStyleProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DistStyleProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DistStyleProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DistStyleProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DistStyleProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DistStyleProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DistStyleProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DistStyleProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DistStyleProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DistStyleProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DistStyleProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DistStyleProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DistStyleProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DistStyleProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DistStyleProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DistStyleProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DistStyleProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DistStyleProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DistStyleProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="EngineProperty">
<input id="EngineProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">EngineProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="EngineProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#EngineProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="EngineProperty-1869"><a href="#EngineProperty-1869"><span class="linenos">1869</span></a><span class="k">class</span> <span class="nc">EngineProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="EngineProperty-1870"><a href="#EngineProperty-1870"><span class="linenos">1870</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="EngineProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="EngineProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="EngineProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="EngineProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="EngineProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="EngineProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="EngineProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="EngineProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="EngineProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="EngineProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="EngineProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="EngineProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="EngineProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="EngineProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="EngineProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="EngineProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="EngineProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="EngineProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="EngineProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="EngineProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="EngineProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="EngineProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="EngineProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="EngineProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="EngineProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="EngineProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="EngineProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="EngineProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="EngineProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="EngineProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="EngineProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="EngineProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="EngineProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="EngineProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="EngineProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="EngineProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="EngineProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="EngineProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="ExecuteAsProperty">
<input id="ExecuteAsProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ExecuteAsProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="ExecuteAsProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ExecuteAsProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ExecuteAsProperty-1873"><a href="#ExecuteAsProperty-1873"><span class="linenos">1873</span></a><span class="k">class</span> <span class="nc">ExecuteAsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="ExecuteAsProperty-1874"><a href="#ExecuteAsProperty-1874"><span class="linenos">1874</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ExecuteAsProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ExecuteAsProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ExecuteAsProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ExecuteAsProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ExecuteAsProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ExecuteAsProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ExecuteAsProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ExecuteAsProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ExecuteAsProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ExecuteAsProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ExecuteAsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ExecuteAsProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ExecuteAsProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ExecuteAsProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ExecuteAsProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ExecuteAsProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ExecuteAsProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ExecuteAsProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ExecuteAsProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ExecuteAsProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ExecuteAsProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ExecuteAsProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ExecuteAsProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ExecuteAsProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ExecuteAsProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ExecuteAsProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ExecuteAsProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ExecuteAsProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ExecuteAsProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ExecuteAsProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ExecuteAsProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ExecuteAsProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ExecuteAsProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ExecuteAsProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ExecuteAsProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ExecuteAsProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ExecuteAsProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ExecuteAsProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="ExternalProperty">
<input id="ExternalProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ExternalProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="ExternalProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ExternalProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ExternalProperty-1877"><a href="#ExternalProperty-1877"><span class="linenos">1877</span></a><span class="k">class</span> <span class="nc">ExternalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="ExternalProperty-1878"><a href="#ExternalProperty-1878"><span class="linenos">1878</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ExternalProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ExternalProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ExternalProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ExternalProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ExternalProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ExternalProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ExternalProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ExternalProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ExternalProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ExternalProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ExternalProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ExternalProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ExternalProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ExternalProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ExternalProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ExternalProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ExternalProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ExternalProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ExternalProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ExternalProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ExternalProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ExternalProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ExternalProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ExternalProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ExternalProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ExternalProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ExternalProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ExternalProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ExternalProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ExternalProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ExternalProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ExternalProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ExternalProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ExternalProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ExternalProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ExternalProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ExternalProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ExternalProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="FallbackProperty">
<input id="FallbackProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">FallbackProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="FallbackProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#FallbackProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="FallbackProperty-1881"><a href="#FallbackProperty-1881"><span class="linenos">1881</span></a><span class="k">class</span> <span class="nc">FallbackProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="FallbackProperty-1882"><a href="#FallbackProperty-1882"><span class="linenos">1882</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;protection&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="FallbackProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="FallbackProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="FallbackProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="FallbackProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="FallbackProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="FallbackProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="FallbackProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="FallbackProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="FallbackProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="FallbackProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="FallbackProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="FallbackProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="FallbackProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="FallbackProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="FallbackProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="FallbackProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="FallbackProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="FallbackProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="FallbackProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="FallbackProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="FallbackProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="FallbackProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="FallbackProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="FallbackProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="FallbackProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="FallbackProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="FallbackProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="FallbackProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="FallbackProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="FallbackProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="FallbackProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="FallbackProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="FallbackProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="FallbackProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="FallbackProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="FallbackProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="FallbackProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="FallbackProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="FileFormatProperty">
<input id="FileFormatProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">FileFormatProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="FileFormatProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#FileFormatProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="FileFormatProperty-1885"><a href="#FileFormatProperty-1885"><span class="linenos">1885</span></a><span class="k">class</span> <span class="nc">FileFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="FileFormatProperty-1886"><a href="#FileFormatProperty-1886"><span class="linenos">1886</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="FileFormatProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="FileFormatProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="FileFormatProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="FileFormatProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="FileFormatProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="FileFormatProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="FileFormatProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="FileFormatProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="FileFormatProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="FileFormatProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="FileFormatProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="FileFormatProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="FileFormatProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="FileFormatProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="FileFormatProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="FileFormatProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="FileFormatProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="FileFormatProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="FileFormatProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="FileFormatProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="FileFormatProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="FileFormatProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="FileFormatProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="FileFormatProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="FileFormatProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="FileFormatProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="FileFormatProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="FileFormatProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="FileFormatProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="FileFormatProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="FileFormatProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="FileFormatProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="FileFormatProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="FileFormatProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="FileFormatProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="FileFormatProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="FileFormatProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="FileFormatProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="FreespaceProperty">
<input id="FreespaceProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">FreespaceProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="FreespaceProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#FreespaceProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="FreespaceProperty-1889"><a href="#FreespaceProperty-1889"><span class="linenos">1889</span></a><span class="k">class</span> <span class="nc">FreespaceProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="FreespaceProperty-1890"><a href="#FreespaceProperty-1890"><span class="linenos">1890</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="FreespaceProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="FreespaceProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="FreespaceProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="FreespaceProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="FreespaceProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="FreespaceProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="FreespaceProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="FreespaceProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="FreespaceProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="FreespaceProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="FreespaceProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="FreespaceProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="FreespaceProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="FreespaceProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="FreespaceProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="FreespaceProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="FreespaceProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="FreespaceProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="FreespaceProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="FreespaceProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="FreespaceProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="FreespaceProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="FreespaceProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="FreespaceProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="FreespaceProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="FreespaceProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="FreespaceProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="FreespaceProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="FreespaceProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="FreespaceProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="FreespaceProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="FreespaceProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="FreespaceProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="FreespaceProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="FreespaceProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="FreespaceProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="FreespaceProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="FreespaceProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="InputOutputFormat">
<input id="InputOutputFormat-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">InputOutputFormat</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="InputOutputFormat-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#InputOutputFormat"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="InputOutputFormat-1893"><a href="#InputOutputFormat-1893"><span class="linenos">1893</span></a><span class="k">class</span> <span class="nc">InputOutputFormat</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="InputOutputFormat-1894"><a href="#InputOutputFormat-1894"><span class="linenos">1894</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;input_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;output_format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="InputOutputFormat.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="InputOutputFormat.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="InputOutputFormat.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="InputOutputFormat.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="InputOutputFormat.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="InputOutputFormat.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="InputOutputFormat.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="InputOutputFormat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="InputOutputFormat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="InputOutputFormat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="InputOutputFormat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="InputOutputFormat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="InputOutputFormat.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="InputOutputFormat.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="InputOutputFormat.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="InputOutputFormat.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="InputOutputFormat.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="InputOutputFormat.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="InputOutputFormat.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="InputOutputFormat.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="InputOutputFormat.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="InputOutputFormat.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="InputOutputFormat.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="InputOutputFormat.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="InputOutputFormat.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="InputOutputFormat.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="InputOutputFormat.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="InputOutputFormat.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="InputOutputFormat.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="InputOutputFormat.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="InputOutputFormat.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="InputOutputFormat.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="InputOutputFormat.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="InputOutputFormat.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="InputOutputFormat.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="InputOutputFormat.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="InputOutputFormat.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="InputOutputFormat.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="IsolatedLoadingProperty">
<input id="IsolatedLoadingProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">IsolatedLoadingProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="IsolatedLoadingProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#IsolatedLoadingProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="IsolatedLoadingProperty-1897"><a href="#IsolatedLoadingProperty-1897"><span class="linenos">1897</span></a><span class="k">class</span> <span class="nc">IsolatedLoadingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="IsolatedLoadingProperty-1898"><a href="#IsolatedLoadingProperty-1898"><span class="linenos">1898</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="IsolatedLoadingProperty-1899"><a href="#IsolatedLoadingProperty-1899"><span class="linenos">1899</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="IsolatedLoadingProperty-1900"><a href="#IsolatedLoadingProperty-1900"><span class="linenos">1900</span></a> <span class="s2">&quot;concurrent&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="IsolatedLoadingProperty-1901"><a href="#IsolatedLoadingProperty-1901"><span class="linenos">1901</span></a> <span class="s2">&quot;for_all&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="IsolatedLoadingProperty-1902"><a href="#IsolatedLoadingProperty-1902"><span class="linenos">1902</span></a> <span class="s2">&quot;for_insert&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="IsolatedLoadingProperty-1903"><a href="#IsolatedLoadingProperty-1903"><span class="linenos">1903</span></a> <span class="s2">&quot;for_none&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="IsolatedLoadingProperty-1904"><a href="#IsolatedLoadingProperty-1904"><span class="linenos">1904</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="IsolatedLoadingProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="IsolatedLoadingProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="IsolatedLoadingProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="IsolatedLoadingProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="IsolatedLoadingProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="IsolatedLoadingProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="IsolatedLoadingProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="IsolatedLoadingProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="IsolatedLoadingProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="IsolatedLoadingProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="IsolatedLoadingProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IsolatedLoadingProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IsolatedLoadingProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="IsolatedLoadingProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="IsolatedLoadingProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="IsolatedLoadingProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="IsolatedLoadingProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="IsolatedLoadingProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="IsolatedLoadingProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="IsolatedLoadingProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="IsolatedLoadingProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="IsolatedLoadingProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="IsolatedLoadingProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="IsolatedLoadingProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="IsolatedLoadingProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="IsolatedLoadingProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="IsolatedLoadingProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="IsolatedLoadingProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IsolatedLoadingProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IsolatedLoadingProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="IsolatedLoadingProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IsolatedLoadingProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IsolatedLoadingProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="IsolatedLoadingProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="IsolatedLoadingProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="IsolatedLoadingProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="IsolatedLoadingProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="IsolatedLoadingProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="JournalProperty">
<input id="JournalProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">JournalProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="JournalProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#JournalProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="JournalProperty-1907"><a href="#JournalProperty-1907"><span class="linenos">1907</span></a><span class="k">class</span> <span class="nc">JournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="JournalProperty-1908"><a href="#JournalProperty-1908"><span class="linenos">1908</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="JournalProperty-1909"><a href="#JournalProperty-1909"><span class="linenos">1909</span></a> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="JournalProperty-1910"><a href="#JournalProperty-1910"><span class="linenos">1910</span></a> <span class="s2">&quot;dual&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="JournalProperty-1911"><a href="#JournalProperty-1911"><span class="linenos">1911</span></a> <span class="s2">&quot;before&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="JournalProperty-1912"><a href="#JournalProperty-1912"><span class="linenos">1912</span></a> <span class="s2">&quot;local&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="JournalProperty-1913"><a href="#JournalProperty-1913"><span class="linenos">1913</span></a> <span class="s2">&quot;after&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="JournalProperty-1914"><a href="#JournalProperty-1914"><span class="linenos">1914</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="JournalProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="JournalProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="JournalProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="JournalProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="JournalProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="JournalProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="JournalProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="JournalProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JournalProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JournalProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JournalProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JournalProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JournalProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="JournalProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JournalProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JournalProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="JournalProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="JournalProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="JournalProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="JournalProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="JournalProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="JournalProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="JournalProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="JournalProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="JournalProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="JournalProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="JournalProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="JournalProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JournalProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JournalProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="JournalProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JournalProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JournalProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="JournalProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="JournalProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="JournalProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="JournalProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="JournalProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="LanguageProperty">
<input id="LanguageProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">LanguageProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="LanguageProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#LanguageProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="LanguageProperty-1917"><a href="#LanguageProperty-1917"><span class="linenos">1917</span></a><span class="k">class</span> <span class="nc">LanguageProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="LanguageProperty-1918"><a href="#LanguageProperty-1918"><span class="linenos">1918</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="LanguageProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="LanguageProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="LanguageProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="LanguageProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="LanguageProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="LanguageProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="LanguageProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="LanguageProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LanguageProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LanguageProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LanguageProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LanguageProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LanguageProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="LanguageProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LanguageProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LanguageProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="LanguageProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="LanguageProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="LanguageProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="LanguageProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="LanguageProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="LanguageProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="LanguageProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="LanguageProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="LanguageProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="LanguageProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="LanguageProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="LanguageProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LanguageProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LanguageProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="LanguageProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LanguageProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LanguageProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="LanguageProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="LanguageProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="LanguageProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="LanguageProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="LanguageProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="LikeProperty">
<input id="LikeProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">LikeProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="LikeProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#LikeProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="LikeProperty-1921"><a href="#LikeProperty-1921"><span class="linenos">1921</span></a><span class="k">class</span> <span class="nc">LikeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="LikeProperty-1922"><a href="#LikeProperty-1922"><span class="linenos">1922</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="LikeProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="LikeProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="LikeProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="LikeProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="LikeProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="LikeProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="LikeProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="LikeProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LikeProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LikeProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LikeProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LikeProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LikeProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="LikeProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LikeProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LikeProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="LikeProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="LikeProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="LikeProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="LikeProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="LikeProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="LikeProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="LikeProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="LikeProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="LikeProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="LikeProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="LikeProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="LikeProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LikeProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LikeProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="LikeProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LikeProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LikeProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="LikeProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="LikeProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="LikeProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="LikeProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="LikeProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="LocationProperty">
<input id="LocationProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">LocationProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="LocationProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#LocationProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="LocationProperty-1925"><a href="#LocationProperty-1925"><span class="linenos">1925</span></a><span class="k">class</span> <span class="nc">LocationProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="LocationProperty-1926"><a href="#LocationProperty-1926"><span class="linenos">1926</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="LocationProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="LocationProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="LocationProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="LocationProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="LocationProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="LocationProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="LocationProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="LocationProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LocationProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LocationProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LocationProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LocationProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LocationProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="LocationProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LocationProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LocationProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="LocationProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="LocationProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="LocationProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="LocationProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="LocationProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="LocationProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="LocationProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="LocationProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="LocationProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="LocationProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="LocationProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="LocationProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LocationProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LocationProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="LocationProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LocationProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LocationProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="LocationProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="LocationProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="LocationProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="LocationProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="LocationProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="LockingProperty">
<input id="LockingProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">LockingProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="LockingProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#LockingProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="LockingProperty-1929"><a href="#LockingProperty-1929"><span class="linenos">1929</span></a><span class="k">class</span> <span class="nc">LockingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="LockingProperty-1930"><a href="#LockingProperty-1930"><span class="linenos">1930</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="LockingProperty-1931"><a href="#LockingProperty-1931"><span class="linenos">1931</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="LockingProperty-1932"><a href="#LockingProperty-1932"><span class="linenos">1932</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="LockingProperty-1933"><a href="#LockingProperty-1933"><span class="linenos">1933</span></a> <span class="s2">&quot;for_or_in&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="LockingProperty-1934"><a href="#LockingProperty-1934"><span class="linenos">1934</span></a> <span class="s2">&quot;lock_type&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="LockingProperty-1935"><a href="#LockingProperty-1935"><span class="linenos">1935</span></a> <span class="s2">&quot;override&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="LockingProperty-1936"><a href="#LockingProperty-1936"><span class="linenos">1936</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="LockingProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="LockingProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="LockingProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="LockingProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="LockingProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="LockingProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="LockingProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="LockingProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LockingProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LockingProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LockingProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LockingProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LockingProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="LockingProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LockingProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LockingProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="LockingProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="LockingProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="LockingProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="LockingProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="LockingProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="LockingProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="LockingProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="LockingProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="LockingProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="LockingProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="LockingProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="LockingProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LockingProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LockingProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="LockingProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LockingProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LockingProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="LockingProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="LockingProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="LockingProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="LockingProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="LockingProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="LogProperty">
<input id="LogProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">LogProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="LogProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#LogProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="LogProperty-1939"><a href="#LogProperty-1939"><span class="linenos">1939</span></a><span class="k">class</span> <span class="nc">LogProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="LogProperty-1940"><a href="#LogProperty-1940"><span class="linenos">1940</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="LogProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="LogProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="LogProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="LogProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="LogProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="LogProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="LogProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="LogProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LogProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LogProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LogProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LogProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LogProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="LogProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LogProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LogProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="LogProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="LogProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="LogProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="LogProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="LogProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="LogProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="LogProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="LogProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="LogProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="LogProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="LogProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="LogProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LogProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LogProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="LogProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LogProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LogProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="LogProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="LogProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="LogProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="LogProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="LogProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="MaterializedProperty">
<input id="MaterializedProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">MaterializedProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="MaterializedProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#MaterializedProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MaterializedProperty-1943"><a href="#MaterializedProperty-1943"><span class="linenos">1943</span></a><span class="k">class</span> <span class="nc">MaterializedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="MaterializedProperty-1944"><a href="#MaterializedProperty-1944"><span class="linenos">1944</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="MaterializedProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="MaterializedProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="MaterializedProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="MaterializedProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="MaterializedProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="MaterializedProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="MaterializedProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="MaterializedProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MaterializedProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MaterializedProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="MaterializedProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MaterializedProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MaterializedProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="MaterializedProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="MaterializedProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="MaterializedProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="MaterializedProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="MaterializedProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="MaterializedProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="MaterializedProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="MaterializedProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="MaterializedProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="MaterializedProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="MaterializedProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="MaterializedProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="MaterializedProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="MaterializedProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="MaterializedProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MaterializedProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MaterializedProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="MaterializedProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MaterializedProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MaterializedProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="MaterializedProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="MaterializedProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="MaterializedProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="MaterializedProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="MaterializedProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="MergeBlockRatioProperty">
<input id="MergeBlockRatioProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">MergeBlockRatioProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="MergeBlockRatioProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#MergeBlockRatioProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MergeBlockRatioProperty-1947"><a href="#MergeBlockRatioProperty-1947"><span class="linenos">1947</span></a><span class="k">class</span> <span class="nc">MergeBlockRatioProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="MergeBlockRatioProperty-1948"><a href="#MergeBlockRatioProperty-1948"><span class="linenos">1948</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="MergeBlockRatioProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="MergeBlockRatioProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="MergeBlockRatioProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="MergeBlockRatioProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="MergeBlockRatioProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="MergeBlockRatioProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="MergeBlockRatioProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="MergeBlockRatioProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MergeBlockRatioProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MergeBlockRatioProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="MergeBlockRatioProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MergeBlockRatioProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MergeBlockRatioProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="MergeBlockRatioProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="MergeBlockRatioProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="MergeBlockRatioProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="MergeBlockRatioProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="MergeBlockRatioProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="MergeBlockRatioProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="MergeBlockRatioProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="MergeBlockRatioProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="MergeBlockRatioProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="MergeBlockRatioProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="MergeBlockRatioProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="MergeBlockRatioProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="MergeBlockRatioProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="MergeBlockRatioProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="MergeBlockRatioProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MergeBlockRatioProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MergeBlockRatioProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="MergeBlockRatioProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MergeBlockRatioProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MergeBlockRatioProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="MergeBlockRatioProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="MergeBlockRatioProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="MergeBlockRatioProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="MergeBlockRatioProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="MergeBlockRatioProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="NoPrimaryIndexProperty">
<input id="NoPrimaryIndexProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">NoPrimaryIndexProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="NoPrimaryIndexProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#NoPrimaryIndexProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="NoPrimaryIndexProperty-1951"><a href="#NoPrimaryIndexProperty-1951"><span class="linenos">1951</span></a><span class="k">class</span> <span class="nc">NoPrimaryIndexProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="NoPrimaryIndexProperty-1952"><a href="#NoPrimaryIndexProperty-1952"><span class="linenos">1952</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="NoPrimaryIndexProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="NoPrimaryIndexProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="NoPrimaryIndexProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="NoPrimaryIndexProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="NoPrimaryIndexProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="NoPrimaryIndexProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="NoPrimaryIndexProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="NoPrimaryIndexProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NoPrimaryIndexProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NoPrimaryIndexProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NoPrimaryIndexProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NoPrimaryIndexProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NoPrimaryIndexProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="NoPrimaryIndexProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NoPrimaryIndexProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NoPrimaryIndexProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="NoPrimaryIndexProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="NoPrimaryIndexProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="NoPrimaryIndexProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="NoPrimaryIndexProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="NoPrimaryIndexProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="NoPrimaryIndexProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="NoPrimaryIndexProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="NoPrimaryIndexProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="NoPrimaryIndexProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="NoPrimaryIndexProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="NoPrimaryIndexProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="NoPrimaryIndexProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NoPrimaryIndexProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NoPrimaryIndexProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="NoPrimaryIndexProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NoPrimaryIndexProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NoPrimaryIndexProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="NoPrimaryIndexProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="NoPrimaryIndexProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="NoPrimaryIndexProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="NoPrimaryIndexProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="NoPrimaryIndexProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="OnCommitProperty">
<input id="OnCommitProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">OnCommitProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="OnCommitProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#OnCommitProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="OnCommitProperty-1955"><a href="#OnCommitProperty-1955"><span class="linenos">1955</span></a><span class="k">class</span> <span class="nc">OnCommitProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="OnCommitProperty-1956"><a href="#OnCommitProperty-1956"><span class="linenos">1956</span></a> <span class="n">arg_type</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;delete&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="OnCommitProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="OnCommitProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="OnCommitProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="OnCommitProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="OnCommitProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="OnCommitProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="OnCommitProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="OnCommitProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="OnCommitProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="OnCommitProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="OnCommitProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OnCommitProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="OnCommitProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="OnCommitProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="OnCommitProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="OnCommitProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="OnCommitProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="OnCommitProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="OnCommitProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="OnCommitProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="OnCommitProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="OnCommitProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="OnCommitProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="OnCommitProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="OnCommitProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="OnCommitProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="OnCommitProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="OnCommitProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="OnCommitProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="OnCommitProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="OnCommitProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="OnCommitProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="OnCommitProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="OnCommitProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="OnCommitProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="OnCommitProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="OnCommitProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="OnCommitProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="PartitionedByProperty">
<input id="PartitionedByProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">PartitionedByProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="PartitionedByProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#PartitionedByProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="PartitionedByProperty-1959"><a href="#PartitionedByProperty-1959"><span class="linenos">1959</span></a><span class="k">class</span> <span class="nc">PartitionedByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="PartitionedByProperty-1960"><a href="#PartitionedByProperty-1960"><span class="linenos">1960</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="PartitionedByProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="PartitionedByProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="PartitionedByProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="PartitionedByProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="PartitionedByProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="PartitionedByProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="PartitionedByProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="PartitionedByProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PartitionedByProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PartitionedByProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PartitionedByProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PartitionedByProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PartitionedByProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="PartitionedByProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PartitionedByProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PartitionedByProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="PartitionedByProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="PartitionedByProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="PartitionedByProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="PartitionedByProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="PartitionedByProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="PartitionedByProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="PartitionedByProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="PartitionedByProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="PartitionedByProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="PartitionedByProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="PartitionedByProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="PartitionedByProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PartitionedByProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PartitionedByProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="PartitionedByProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PartitionedByProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PartitionedByProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="PartitionedByProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="PartitionedByProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="PartitionedByProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="PartitionedByProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="PartitionedByProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="ReturnsProperty">
<input id="ReturnsProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ReturnsProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="ReturnsProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ReturnsProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ReturnsProperty-1963"><a href="#ReturnsProperty-1963"><span class="linenos">1963</span></a><span class="k">class</span> <span class="nc">ReturnsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="ReturnsProperty-1964"><a href="#ReturnsProperty-1964"><span class="linenos">1964</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;is_table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;table&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ReturnsProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ReturnsProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ReturnsProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ReturnsProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ReturnsProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ReturnsProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ReturnsProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ReturnsProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ReturnsProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ReturnsProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ReturnsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ReturnsProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ReturnsProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ReturnsProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ReturnsProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ReturnsProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ReturnsProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ReturnsProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ReturnsProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ReturnsProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ReturnsProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ReturnsProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ReturnsProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ReturnsProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ReturnsProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ReturnsProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ReturnsProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ReturnsProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ReturnsProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ReturnsProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ReturnsProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ReturnsProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ReturnsProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ReturnsProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ReturnsProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ReturnsProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ReturnsProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ReturnsProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="RowFormatProperty">
<input id="RowFormatProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">RowFormatProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="RowFormatProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#RowFormatProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatProperty-1967"><a href="#RowFormatProperty-1967"><span class="linenos">1967</span></a><span class="k">class</span> <span class="nc">RowFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="RowFormatProperty-1968"><a href="#RowFormatProperty-1968"><span class="linenos">1968</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="RowFormatProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="RowFormatProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="RowFormatProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="RowFormatProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="RowFormatProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="RowFormatProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="RowFormatProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="RowFormatProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RowFormatProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RowFormatProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RowFormatProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RowFormatProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RowFormatProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="RowFormatProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RowFormatProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RowFormatProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="RowFormatProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="RowFormatProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="RowFormatProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="RowFormatProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="RowFormatProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="RowFormatProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="RowFormatProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="RowFormatProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="RowFormatProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="RowFormatProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="RowFormatProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="RowFormatProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RowFormatProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RowFormatProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="RowFormatProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RowFormatProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RowFormatProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="RowFormatProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="RowFormatProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="RowFormatProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="RowFormatProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="RowFormatProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="RowFormatDelimitedProperty">
<input id="RowFormatDelimitedProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">RowFormatDelimitedProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="RowFormatDelimitedProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#RowFormatDelimitedProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatDelimitedProperty-1971"><a href="#RowFormatDelimitedProperty-1971"><span class="linenos">1971</span></a><span class="k">class</span> <span class="nc">RowFormatDelimitedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="RowFormatDelimitedProperty-1972"><a href="#RowFormatDelimitedProperty-1972"><span class="linenos">1972</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span>
</span><span id="RowFormatDelimitedProperty-1973"><a href="#RowFormatDelimitedProperty-1973"><span class="linenos">1973</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="RowFormatDelimitedProperty-1974"><a href="#RowFormatDelimitedProperty-1974"><span class="linenos">1974</span></a> <span class="s2">&quot;fields&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="RowFormatDelimitedProperty-1975"><a href="#RowFormatDelimitedProperty-1975"><span class="linenos">1975</span></a> <span class="s2">&quot;escaped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="RowFormatDelimitedProperty-1976"><a href="#RowFormatDelimitedProperty-1976"><span class="linenos">1976</span></a> <span class="s2">&quot;collection_items&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="RowFormatDelimitedProperty-1977"><a href="#RowFormatDelimitedProperty-1977"><span class="linenos">1977</span></a> <span class="s2">&quot;map_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="RowFormatDelimitedProperty-1978"><a href="#RowFormatDelimitedProperty-1978"><span class="linenos">1978</span></a> <span class="s2">&quot;lines&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="RowFormatDelimitedProperty-1979"><a href="#RowFormatDelimitedProperty-1979"><span class="linenos">1979</span></a> <span class="s2">&quot;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="RowFormatDelimitedProperty-1980"><a href="#RowFormatDelimitedProperty-1980"><span class="linenos">1980</span></a> <span class="s2">&quot;serde&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="RowFormatDelimitedProperty-1981"><a href="#RowFormatDelimitedProperty-1981"><span class="linenos">1981</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="RowFormatDelimitedProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="RowFormatDelimitedProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="RowFormatDelimitedProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="RowFormatDelimitedProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="RowFormatDelimitedProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="RowFormatDelimitedProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="RowFormatDelimitedProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="RowFormatDelimitedProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RowFormatDelimitedProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RowFormatDelimitedProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RowFormatDelimitedProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RowFormatDelimitedProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RowFormatDelimitedProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="RowFormatDelimitedProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RowFormatDelimitedProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RowFormatDelimitedProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="RowFormatDelimitedProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="RowFormatDelimitedProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="RowFormatDelimitedProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="RowFormatDelimitedProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="RowFormatDelimitedProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="RowFormatDelimitedProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="RowFormatDelimitedProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="RowFormatDelimitedProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="RowFormatDelimitedProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="RowFormatDelimitedProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="RowFormatDelimitedProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="RowFormatDelimitedProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RowFormatDelimitedProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RowFormatDelimitedProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="RowFormatDelimitedProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RowFormatDelimitedProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RowFormatDelimitedProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="RowFormatDelimitedProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="RowFormatDelimitedProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="RowFormatDelimitedProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="RowFormatDelimitedProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="RowFormatDelimitedProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="RowFormatSerdeProperty">
<input id="RowFormatSerdeProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">RowFormatSerdeProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="RowFormatSerdeProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#RowFormatSerdeProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatSerdeProperty-1984"><a href="#RowFormatSerdeProperty-1984"><span class="linenos">1984</span></a><span class="k">class</span> <span class="nc">RowFormatSerdeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="RowFormatSerdeProperty-1985"><a href="#RowFormatSerdeProperty-1985"><span class="linenos">1985</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="RowFormatSerdeProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="RowFormatSerdeProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="RowFormatSerdeProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="RowFormatSerdeProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="RowFormatSerdeProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="RowFormatSerdeProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="RowFormatSerdeProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="RowFormatSerdeProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RowFormatSerdeProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RowFormatSerdeProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RowFormatSerdeProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RowFormatSerdeProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RowFormatSerdeProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="RowFormatSerdeProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RowFormatSerdeProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RowFormatSerdeProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="RowFormatSerdeProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="RowFormatSerdeProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="RowFormatSerdeProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="RowFormatSerdeProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="RowFormatSerdeProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="RowFormatSerdeProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="RowFormatSerdeProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="RowFormatSerdeProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="RowFormatSerdeProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="RowFormatSerdeProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="RowFormatSerdeProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="RowFormatSerdeProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RowFormatSerdeProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RowFormatSerdeProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="RowFormatSerdeProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RowFormatSerdeProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RowFormatSerdeProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="RowFormatSerdeProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="RowFormatSerdeProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="RowFormatSerdeProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="RowFormatSerdeProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="RowFormatSerdeProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="SchemaCommentProperty">
<input id="SchemaCommentProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SchemaCommentProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="SchemaCommentProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SchemaCommentProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SchemaCommentProperty-1988"><a href="#SchemaCommentProperty-1988"><span class="linenos">1988</span></a><span class="k">class</span> <span class="nc">SchemaCommentProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="SchemaCommentProperty-1989"><a href="#SchemaCommentProperty-1989"><span class="linenos">1989</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SchemaCommentProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SchemaCommentProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SchemaCommentProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SchemaCommentProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SchemaCommentProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SchemaCommentProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SchemaCommentProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SchemaCommentProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SchemaCommentProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SchemaCommentProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SchemaCommentProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SchemaCommentProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SchemaCommentProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SchemaCommentProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SchemaCommentProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SchemaCommentProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SchemaCommentProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SchemaCommentProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SchemaCommentProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SchemaCommentProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SchemaCommentProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SchemaCommentProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SchemaCommentProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SchemaCommentProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SchemaCommentProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SchemaCommentProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SchemaCommentProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SchemaCommentProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SchemaCommentProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SchemaCommentProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SchemaCommentProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SchemaCommentProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SchemaCommentProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SchemaCommentProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SchemaCommentProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SchemaCommentProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SchemaCommentProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SchemaCommentProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="SerdeProperties">
<input id="SerdeProperties-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SerdeProperties</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="SerdeProperties-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SerdeProperties"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SerdeProperties-1992"><a href="#SerdeProperties-1992"><span class="linenos">1992</span></a><span class="k">class</span> <span class="nc">SerdeProperties</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="SerdeProperties-1993"><a href="#SerdeProperties-1993"><span class="linenos">1993</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SerdeProperties.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SerdeProperties.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SerdeProperties.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SerdeProperties.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SerdeProperties.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SerdeProperties.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SerdeProperties.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SerdeProperties.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SerdeProperties.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SerdeProperties.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SerdeProperties.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SerdeProperties.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SerdeProperties.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SerdeProperties.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SerdeProperties.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SerdeProperties.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SerdeProperties.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SerdeProperties.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SerdeProperties.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SerdeProperties.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SerdeProperties.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SerdeProperties.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SerdeProperties.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SerdeProperties.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SerdeProperties.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SerdeProperties.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SerdeProperties.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SerdeProperties.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SerdeProperties.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SerdeProperties.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SerdeProperties.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SerdeProperties.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SerdeProperties.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SerdeProperties.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SerdeProperties.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SerdeProperties.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SerdeProperties.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SerdeProperties.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="SetProperty">
<input id="SetProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SetProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="SetProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SetProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SetProperty-1996"><a href="#SetProperty-1996"><span class="linenos">1996</span></a><span class="k">class</span> <span class="nc">SetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="SetProperty-1997"><a href="#SetProperty-1997"><span class="linenos">1997</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;multi&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SetProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SetProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SetProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SetProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SetProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SetProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SetProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SetProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SetProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SetProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SetProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SetProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SetProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SetProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SetProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SetProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SetProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SetProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SetProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SetProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SetProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SetProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SetProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SetProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SetProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SetProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SetProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SetProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SetProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SetProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SetProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SetProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SetProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SetProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SetProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SetProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SetProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SetProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="SettingsProperty">
<input id="SettingsProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SettingsProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="SettingsProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SettingsProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SettingsProperty-2000"><a href="#SettingsProperty-2000"><span class="linenos">2000</span></a><span class="k">class</span> <span class="nc">SettingsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="SettingsProperty-2001"><a href="#SettingsProperty-2001"><span class="linenos">2001</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SettingsProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SettingsProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SettingsProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SettingsProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SettingsProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SettingsProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SettingsProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SettingsProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SettingsProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SettingsProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SettingsProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SettingsProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SettingsProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SettingsProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SettingsProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SettingsProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SettingsProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SettingsProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SettingsProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SettingsProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SettingsProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SettingsProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SettingsProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SettingsProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SettingsProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SettingsProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SettingsProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SettingsProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SettingsProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SettingsProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SettingsProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SettingsProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SettingsProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SettingsProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SettingsProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SettingsProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SettingsProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SettingsProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="SortKeyProperty">
<input id="SortKeyProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SortKeyProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="SortKeyProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SortKeyProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SortKeyProperty-2004"><a href="#SortKeyProperty-2004"><span class="linenos">2004</span></a><span class="k">class</span> <span class="nc">SortKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="SortKeyProperty-2005"><a href="#SortKeyProperty-2005"><span class="linenos">2005</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;compound&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SortKeyProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SortKeyProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SortKeyProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SortKeyProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SortKeyProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SortKeyProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SortKeyProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SortKeyProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SortKeyProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SortKeyProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SortKeyProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SortKeyProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SortKeyProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SortKeyProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SortKeyProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SortKeyProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SortKeyProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SortKeyProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SortKeyProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SortKeyProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SortKeyProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SortKeyProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SortKeyProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SortKeyProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SortKeyProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SortKeyProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SortKeyProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SortKeyProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SortKeyProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SortKeyProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SortKeyProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SortKeyProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SortKeyProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SortKeyProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SortKeyProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SortKeyProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SortKeyProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SortKeyProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="SqlSecurityProperty">
<input id="SqlSecurityProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SqlSecurityProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="SqlSecurityProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SqlSecurityProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SqlSecurityProperty-2008"><a href="#SqlSecurityProperty-2008"><span class="linenos">2008</span></a><span class="k">class</span> <span class="nc">SqlSecurityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="SqlSecurityProperty-2009"><a href="#SqlSecurityProperty-2009"><span class="linenos">2009</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;definer&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SqlSecurityProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SqlSecurityProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SqlSecurityProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SqlSecurityProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SqlSecurityProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SqlSecurityProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SqlSecurityProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SqlSecurityProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SqlSecurityProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SqlSecurityProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SqlSecurityProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SqlSecurityProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SqlSecurityProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SqlSecurityProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SqlSecurityProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SqlSecurityProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SqlSecurityProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SqlSecurityProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SqlSecurityProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SqlSecurityProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SqlSecurityProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SqlSecurityProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SqlSecurityProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SqlSecurityProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SqlSecurityProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SqlSecurityProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SqlSecurityProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SqlSecurityProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SqlSecurityProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SqlSecurityProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SqlSecurityProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SqlSecurityProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SqlSecurityProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SqlSecurityProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SqlSecurityProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SqlSecurityProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SqlSecurityProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SqlSecurityProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="StabilityProperty">
<input id="StabilityProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">StabilityProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="StabilityProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#StabilityProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="StabilityProperty-2012"><a href="#StabilityProperty-2012"><span class="linenos">2012</span></a><span class="k">class</span> <span class="nc">StabilityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="StabilityProperty-2013"><a href="#StabilityProperty-2013"><span class="linenos">2013</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="StabilityProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="StabilityProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="StabilityProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="StabilityProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="StabilityProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="StabilityProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="StabilityProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="StabilityProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StabilityProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StabilityProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StabilityProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StabilityProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StabilityProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="StabilityProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StabilityProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StabilityProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="StabilityProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="StabilityProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="StabilityProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="StabilityProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="StabilityProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="StabilityProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="StabilityProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="StabilityProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="StabilityProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="StabilityProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="StabilityProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="StabilityProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StabilityProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StabilityProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="StabilityProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StabilityProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StabilityProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="StabilityProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="StabilityProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="StabilityProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="StabilityProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="StabilityProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="TemporaryProperty">
<input id="TemporaryProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TemporaryProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="TemporaryProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TemporaryProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TemporaryProperty-2016"><a href="#TemporaryProperty-2016"><span class="linenos">2016</span></a><span class="k">class</span> <span class="nc">TemporaryProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="TemporaryProperty-2017"><a href="#TemporaryProperty-2017"><span class="linenos">2017</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TemporaryProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TemporaryProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TemporaryProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TemporaryProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TemporaryProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TemporaryProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TemporaryProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TemporaryProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TemporaryProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TemporaryProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TemporaryProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TemporaryProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TemporaryProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TemporaryProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TemporaryProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TemporaryProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TemporaryProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TemporaryProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TemporaryProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TemporaryProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TemporaryProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TemporaryProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TemporaryProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TemporaryProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TemporaryProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TemporaryProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TemporaryProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TemporaryProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TemporaryProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TemporaryProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TemporaryProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TemporaryProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TemporaryProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TemporaryProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TemporaryProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TemporaryProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TemporaryProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TemporaryProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="TransientProperty">
<input id="TransientProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TransientProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="TransientProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TransientProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TransientProperty-2020"><a href="#TransientProperty-2020"><span class="linenos">2020</span></a><span class="k">class</span> <span class="nc">TransientProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="TransientProperty-2021"><a href="#TransientProperty-2021"><span class="linenos">2021</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TransientProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TransientProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TransientProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TransientProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TransientProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TransientProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TransientProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TransientProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TransientProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TransientProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TransientProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TransientProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TransientProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TransientProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TransientProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TransientProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TransientProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TransientProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TransientProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TransientProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TransientProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TransientProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TransientProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TransientProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TransientProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TransientProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TransientProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TransientProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TransientProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TransientProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TransientProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TransientProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TransientProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TransientProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TransientProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TransientProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TransientProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TransientProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="VolatileProperty">
<input id="VolatileProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">VolatileProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="VolatileProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#VolatileProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="VolatileProperty-2024"><a href="#VolatileProperty-2024"><span class="linenos">2024</span></a><span class="k">class</span> <span class="nc">VolatileProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="VolatileProperty-2025"><a href="#VolatileProperty-2025"><span class="linenos">2025</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="VolatileProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="VolatileProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="VolatileProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="VolatileProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="VolatileProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="VolatileProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="VolatileProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="VolatileProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="VolatileProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="VolatileProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="VolatileProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="VolatileProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="VolatileProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="VolatileProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="VolatileProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="VolatileProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="VolatileProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="VolatileProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="VolatileProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="VolatileProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="VolatileProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="VolatileProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="VolatileProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="VolatileProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="VolatileProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="VolatileProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="VolatileProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="VolatileProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="VolatileProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="VolatileProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="VolatileProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="VolatileProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="VolatileProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="VolatileProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="VolatileProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="VolatileProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="VolatileProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="VolatileProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="WithDataProperty">
<input id="WithDataProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">WithDataProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="WithDataProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#WithDataProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="WithDataProperty-2028"><a href="#WithDataProperty-2028"><span class="linenos">2028</span></a><span class="k">class</span> <span class="nc">WithDataProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="WithDataProperty-2029"><a href="#WithDataProperty-2029"><span class="linenos">2029</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;no&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;statistics&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="WithDataProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="WithDataProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="WithDataProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="WithDataProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="WithDataProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="WithDataProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="WithDataProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="WithDataProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="WithDataProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="WithDataProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="WithDataProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="WithDataProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="WithDataProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="WithDataProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="WithDataProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="WithDataProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="WithDataProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="WithDataProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="WithDataProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="WithDataProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="WithDataProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="WithDataProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="WithDataProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="WithDataProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="WithDataProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="WithDataProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="WithDataProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="WithDataProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="WithDataProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="WithDataProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="WithDataProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="WithDataProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="WithDataProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="WithDataProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="WithDataProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="WithDataProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="WithDataProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="WithDataProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="WithJournalTableProperty">
<input id="WithJournalTableProperty-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">WithJournalTableProperty</span><wbr>(<span class="base"><a href="#Property">Property</a></span>):
<label class="view-source-button" for="WithJournalTableProperty-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#WithJournalTableProperty"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="WithJournalTableProperty-2032"><a href="#WithJournalTableProperty-2032"><span class="linenos">2032</span></a><span class="k">class</span> <span class="nc">WithJournalTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span>
</span><span id="WithJournalTableProperty-2033"><a href="#WithJournalTableProperty-2033"><span class="linenos">2033</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="WithJournalTableProperty.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="WithJournalTableProperty.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="WithJournalTableProperty.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="WithJournalTableProperty.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="WithJournalTableProperty.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="WithJournalTableProperty.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="WithJournalTableProperty.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="WithJournalTableProperty.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="WithJournalTableProperty.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="WithJournalTableProperty.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="WithJournalTableProperty.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="WithJournalTableProperty.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="WithJournalTableProperty.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="WithJournalTableProperty.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="WithJournalTableProperty.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="WithJournalTableProperty.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="WithJournalTableProperty.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="WithJournalTableProperty.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="WithJournalTableProperty.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="WithJournalTableProperty.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="WithJournalTableProperty.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="WithJournalTableProperty.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="WithJournalTableProperty.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="WithJournalTableProperty.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="WithJournalTableProperty.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="WithJournalTableProperty.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="WithJournalTableProperty.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="WithJournalTableProperty.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="WithJournalTableProperty.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="WithJournalTableProperty.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="WithJournalTableProperty.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="WithJournalTableProperty.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="WithJournalTableProperty.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="WithJournalTableProperty.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="WithJournalTableProperty.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="WithJournalTableProperty.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="WithJournalTableProperty.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="WithJournalTableProperty.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Properties">
<input id="Properties-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Properties</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Properties-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Properties"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Properties-2036"><a href="#Properties-2036"><span class="linenos">2036</span></a><span class="k">class</span> <span class="nc">Properties</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Properties-2037"><a href="#Properties-2037"><span class="linenos">2037</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="Properties-2038"><a href="#Properties-2038"><span class="linenos">2038</span></a>
</span><span id="Properties-2039"><a href="#Properties-2039"><span class="linenos">2039</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Properties-2040"><a href="#Properties-2040"><span class="linenos">2040</span></a> <span class="s2">&quot;ALGORITHM&quot;</span><span class="p">:</span> <span class="n">AlgorithmProperty</span><span class="p">,</span>
</span><span id="Properties-2041"><a href="#Properties-2041"><span class="linenos">2041</span></a> <span class="s2">&quot;AUTO_INCREMENT&quot;</span><span class="p">:</span> <span class="n">AutoIncrementProperty</span><span class="p">,</span>
</span><span id="Properties-2042"><a href="#Properties-2042"><span class="linenos">2042</span></a> <span class="s2">&quot;CHARACTER SET&quot;</span><span class="p">:</span> <span class="n">CharacterSetProperty</span><span class="p">,</span>
</span><span id="Properties-2043"><a href="#Properties-2043"><span class="linenos">2043</span></a> <span class="s2">&quot;COLLATE&quot;</span><span class="p">:</span> <span class="n">CollateProperty</span><span class="p">,</span>
</span><span id="Properties-2044"><a href="#Properties-2044"><span class="linenos">2044</span></a> <span class="s2">&quot;COMMENT&quot;</span><span class="p">:</span> <span class="n">SchemaCommentProperty</span><span class="p">,</span>
</span><span id="Properties-2045"><a href="#Properties-2045"><span class="linenos">2045</span></a> <span class="s2">&quot;DEFINER&quot;</span><span class="p">:</span> <span class="n">DefinerProperty</span><span class="p">,</span>
</span><span id="Properties-2046"><a href="#Properties-2046"><span class="linenos">2046</span></a> <span class="s2">&quot;DISTKEY&quot;</span><span class="p">:</span> <span class="n">DistKeyProperty</span><span class="p">,</span>
</span><span id="Properties-2047"><a href="#Properties-2047"><span class="linenos">2047</span></a> <span class="s2">&quot;DISTSTYLE&quot;</span><span class="p">:</span> <span class="n">DistStyleProperty</span><span class="p">,</span>
</span><span id="Properties-2048"><a href="#Properties-2048"><span class="linenos">2048</span></a> <span class="s2">&quot;ENGINE&quot;</span><span class="p">:</span> <span class="n">EngineProperty</span><span class="p">,</span>
</span><span id="Properties-2049"><a href="#Properties-2049"><span class="linenos">2049</span></a> <span class="s2">&quot;EXECUTE AS&quot;</span><span class="p">:</span> <span class="n">ExecuteAsProperty</span><span class="p">,</span>
</span><span id="Properties-2050"><a href="#Properties-2050"><span class="linenos">2050</span></a> <span class="s2">&quot;FORMAT&quot;</span><span class="p">:</span> <span class="n">FileFormatProperty</span><span class="p">,</span>
</span><span id="Properties-2051"><a href="#Properties-2051"><span class="linenos">2051</span></a> <span class="s2">&quot;LANGUAGE&quot;</span><span class="p">:</span> <span class="n">LanguageProperty</span><span class="p">,</span>
</span><span id="Properties-2052"><a href="#Properties-2052"><span class="linenos">2052</span></a> <span class="s2">&quot;LOCATION&quot;</span><span class="p">:</span> <span class="n">LocationProperty</span><span class="p">,</span>
</span><span id="Properties-2053"><a href="#Properties-2053"><span class="linenos">2053</span></a> <span class="s2">&quot;PARTITIONED_BY&quot;</span><span class="p">:</span> <span class="n">PartitionedByProperty</span><span class="p">,</span>
</span><span id="Properties-2054"><a href="#Properties-2054"><span class="linenos">2054</span></a> <span class="s2">&quot;RETURNS&quot;</span><span class="p">:</span> <span class="n">ReturnsProperty</span><span class="p">,</span>
</span><span id="Properties-2055"><a href="#Properties-2055"><span class="linenos">2055</span></a> <span class="s2">&quot;ROW_FORMAT&quot;</span><span class="p">:</span> <span class="n">RowFormatProperty</span><span class="p">,</span>
</span><span id="Properties-2056"><a href="#Properties-2056"><span class="linenos">2056</span></a> <span class="s2">&quot;SORTKEY&quot;</span><span class="p">:</span> <span class="n">SortKeyProperty</span><span class="p">,</span>
</span><span id="Properties-2057"><a href="#Properties-2057"><span class="linenos">2057</span></a> <span class="p">}</span>
</span><span id="Properties-2058"><a href="#Properties-2058"><span class="linenos">2058</span></a>
</span><span id="Properties-2059"><a href="#Properties-2059"><span class="linenos">2059</span></a> <span class="n">PROPERTY_TO_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="p">:</span> <span class="n">k</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
</span><span id="Properties-2060"><a href="#Properties-2060"><span class="linenos">2060</span></a>
</span><span id="Properties-2061"><a href="#Properties-2061"><span class="linenos">2061</span></a> <span class="c1"># CREATE property locations</span>
</span><span id="Properties-2062"><a href="#Properties-2062"><span class="linenos">2062</span></a> <span class="c1"># Form: schema specified</span>
</span><span id="Properties-2063"><a href="#Properties-2063"><span class="linenos">2063</span></a> <span class="c1"># create [POST_CREATE]</span>
</span><span id="Properties-2064"><a href="#Properties-2064"><span class="linenos">2064</span></a> <span class="c1"># table a [POST_NAME]</span>
</span><span id="Properties-2065"><a href="#Properties-2065"><span class="linenos">2065</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span>
</span><span id="Properties-2066"><a href="#Properties-2066"><span class="linenos">2066</span></a> <span class="c1"># with ([POST_WITH])</span>
</span><span id="Properties-2067"><a href="#Properties-2067"><span class="linenos">2067</span></a> <span class="c1"># index (b) [POST_INDEX]</span>
</span><span id="Properties-2068"><a href="#Properties-2068"><span class="linenos">2068</span></a> <span class="c1">#</span>
</span><span id="Properties-2069"><a href="#Properties-2069"><span class="linenos">2069</span></a> <span class="c1"># Form: alias selection</span>
</span><span id="Properties-2070"><a href="#Properties-2070"><span class="linenos">2070</span></a> <span class="c1"># create [POST_CREATE]</span>
</span><span id="Properties-2071"><a href="#Properties-2071"><span class="linenos">2071</span></a> <span class="c1"># table a [POST_NAME]</span>
</span><span id="Properties-2072"><a href="#Properties-2072"><span class="linenos">2072</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span>
</span><span id="Properties-2073"><a href="#Properties-2073"><span class="linenos">2073</span></a> <span class="c1"># index (c) [POST_INDEX]</span>
</span><span id="Properties-2074"><a href="#Properties-2074"><span class="linenos">2074</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
</span><span id="Properties-2075"><a href="#Properties-2075"><span class="linenos">2075</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties-2076"><a href="#Properties-2076"><span class="linenos">2076</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties-2077"><a href="#Properties-2077"><span class="linenos">2077</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties-2078"><a href="#Properties-2078"><span class="linenos">2078</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties-2079"><a href="#Properties-2079"><span class="linenos">2079</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties-2080"><a href="#Properties-2080"><span class="linenos">2080</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties-2081"><a href="#Properties-2081"><span class="linenos">2081</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties-2082"><a href="#Properties-2082"><span class="linenos">2082</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties-2083"><a href="#Properties-2083"><span class="linenos">2083</span></a>
</span><span id="Properties-2084"><a href="#Properties-2084"><span class="linenos">2084</span></a> <span class="nd">@classmethod</span>
</span><span id="Properties-2085"><a href="#Properties-2085"><span class="linenos">2085</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
</span><span id="Properties-2086"><a href="#Properties-2086"><span class="linenos">2086</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="Properties-2087"><a href="#Properties-2087"><span class="linenos">2087</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="Properties-2088"><a href="#Properties-2088"><span class="linenos">2088</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
</span><span id="Properties-2089"><a href="#Properties-2089"><span class="linenos">2089</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
</span><span id="Properties-2090"><a href="#Properties-2090"><span class="linenos">2090</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
</span><span id="Properties-2091"><a href="#Properties-2091"><span class="linenos">2091</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="Properties-2092"><a href="#Properties-2092"><span class="linenos">2092</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
</span><span id="Properties-2093"><a href="#Properties-2093"><span class="linenos">2093</span></a>
</span><span id="Properties-2094"><a href="#Properties-2094"><span class="linenos">2094</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span>
</span></pre></div>
<div id="Properties.from_dict" class="classattr">
<input id="Properties.from_dict-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<div class="decorator">@classmethod</div>
<span class="def">def</span>
<span class="name">from_dict</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">cls</span>, </span><span class="param"><span class="n">properties_dict</span><span class="p">:</span> <span class="n">Dict</span></span><span class="return-annotation">) -> <span class="n"><a href="#Properties">sqlglot.expressions.Properties</a></span>:</span></span>
<label class="view-source-button" for="Properties.from_dict-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Properties.from_dict"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Properties.from_dict-2084"><a href="#Properties.from_dict-2084"><span class="linenos">2084</span></a> <span class="nd">@classmethod</span>
</span><span id="Properties.from_dict-2085"><a href="#Properties.from_dict-2085"><span class="linenos">2085</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Properties</span><span class="p">:</span>
</span><span id="Properties.from_dict-2086"><a href="#Properties.from_dict-2086"><span class="linenos">2086</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="Properties.from_dict-2087"><a href="#Properties.from_dict-2087"><span class="linenos">2087</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="Properties.from_dict-2088"><a href="#Properties.from_dict-2088"><span class="linenos">2088</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
</span><span id="Properties.from_dict-2089"><a href="#Properties.from_dict-2089"><span class="linenos">2089</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span>
</span><span id="Properties.from_dict-2090"><a href="#Properties.from_dict-2090"><span class="linenos">2090</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
</span><span id="Properties.from_dict-2091"><a href="#Properties.from_dict-2091"><span class="linenos">2091</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="Properties.from_dict-2092"><a href="#Properties.from_dict-2092"><span class="linenos">2092</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span>
</span><span id="Properties.from_dict-2093"><a href="#Properties.from_dict-2093"><span class="linenos">2093</span></a>
</span><span id="Properties.from_dict-2094"><a href="#Properties.from_dict-2094"><span class="linenos">2094</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span>
</span></pre></div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Properties.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Properties.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Properties.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Properties.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Properties.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Properties.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Properties.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Properties.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Properties.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Properties.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Properties.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Properties.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Properties.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Properties.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Properties.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Properties.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Properties.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Properties.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Properties.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Properties.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Properties.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Properties.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Properties.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Properties.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Properties.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Properties.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Properties.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Properties.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Properties.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Properties.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Properties.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Properties.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Properties.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Properties.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Properties.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Properties.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Properties.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Properties.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Properties.Location">
<input id="Properties.Location-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Properties.Location</span><wbr>(<span class="base"><a href="helper.html#AutoName">sqlglot.helper.AutoName</a></span>):
<label class="view-source-button" for="Properties.Location-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Properties.Location"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Properties.Location-2074"><a href="#Properties.Location-2074"><span class="linenos">2074</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
</span><span id="Properties.Location-2075"><a href="#Properties.Location-2075"><span class="linenos">2075</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties.Location-2076"><a href="#Properties.Location-2076"><span class="linenos">2076</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties.Location-2077"><a href="#Properties.Location-2077"><span class="linenos">2077</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties.Location-2078"><a href="#Properties.Location-2078"><span class="linenos">2078</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties.Location-2079"><a href="#Properties.Location-2079"><span class="linenos">2079</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties.Location-2080"><a href="#Properties.Location-2080"><span class="linenos">2080</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties.Location-2081"><a href="#Properties.Location-2081"><span class="linenos">2081</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="Properties.Location-2082"><a href="#Properties.Location-2082"><span class="linenos">2082</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span></pre></div>
<div class="docstring"><p>An enumeration.</p>
</div>
<div id="Properties.Location.POST_CREATE" class="classattr">
<div class="attr variable">
<span class="name">POST_CREATE</span> =
<span class="default_value">&lt;Location.POST_CREATE: &#39;POST_CREATE&#39;&gt;</span>
</div>
<a class="headerlink" href="#Properties.Location.POST_CREATE"></a>
</div>
<div id="Properties.Location.POST_NAME" class="classattr">
<div class="attr variable">
<span class="name">POST_NAME</span> =
<span class="default_value">&lt;Location.POST_NAME: &#39;POST_NAME&#39;&gt;</span>
</div>
<a class="headerlink" href="#Properties.Location.POST_NAME"></a>
</div>
<div id="Properties.Location.POST_SCHEMA" class="classattr">
<div class="attr variable">
<span class="name">POST_SCHEMA</span> =
<span class="default_value">&lt;Location.POST_SCHEMA: &#39;POST_SCHEMA&#39;&gt;</span>
</div>
<a class="headerlink" href="#Properties.Location.POST_SCHEMA"></a>
</div>
<div id="Properties.Location.POST_WITH" class="classattr">
<div class="attr variable">
<span class="name">POST_WITH</span> =
<span class="default_value">&lt;Location.POST_WITH: &#39;POST_WITH&#39;&gt;</span>
</div>
<a class="headerlink" href="#Properties.Location.POST_WITH"></a>
</div>
<div id="Properties.Location.POST_ALIAS" class="classattr">
<div class="attr variable">
<span class="name">POST_ALIAS</span> =
<span class="default_value">&lt;Location.POST_ALIAS: &#39;POST_ALIAS&#39;&gt;</span>
</div>
<a class="headerlink" href="#Properties.Location.POST_ALIAS"></a>
</div>
<div id="Properties.Location.POST_EXPRESSION" class="classattr">
<div class="attr variable">
<span class="name">POST_EXPRESSION</span> =
<span class="default_value">&lt;Location.POST_EXPRESSION: &#39;POST_EXPRESSION&#39;&gt;</span>
</div>
<a class="headerlink" href="#Properties.Location.POST_EXPRESSION"></a>
</div>
<div id="Properties.Location.POST_INDEX" class="classattr">
<div class="attr variable">
<span class="name">POST_INDEX</span> =
<span class="default_value">&lt;Location.POST_INDEX: &#39;POST_INDEX&#39;&gt;</span>
</div>
<a class="headerlink" href="#Properties.Location.POST_INDEX"></a>
</div>
<div id="Properties.Location.UNSUPPORTED" class="classattr">
<div class="attr variable">
<span class="name">UNSUPPORTED</span> =
<span class="default_value">&lt;Location.UNSUPPORTED: &#39;UNSUPPORTED&#39;&gt;</span>
</div>
<a class="headerlink" href="#Properties.Location.UNSUPPORTED"></a>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt>enum.Enum</dt>
<dd id="Properties.Location.name" class="variable">name</dd>
<dd id="Properties.Location.value" class="variable">value</dd>
</div>
</dl>
</div>
</section>
<section id="Qualify">
<input id="Qualify-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Qualify</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Qualify-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Qualify"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Qualify-2097"><a href="#Qualify-2097"><span class="linenos">2097</span></a><span class="k">class</span> <span class="nc">Qualify</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Qualify-2098"><a href="#Qualify-2098"><span class="linenos">2098</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Qualify.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Qualify.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Qualify.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Qualify.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Qualify.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Qualify.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Qualify.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Qualify.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Qualify.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Qualify.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Qualify.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Qualify.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Qualify.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Qualify.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Qualify.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Qualify.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Qualify.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Qualify.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Qualify.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Qualify.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Qualify.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Qualify.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Qualify.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Qualify.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Qualify.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Qualify.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Qualify.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Qualify.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Qualify.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Qualify.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Qualify.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Qualify.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Qualify.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Qualify.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Qualify.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Qualify.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Qualify.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Qualify.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Return">
<input id="Return-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Return</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Return-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Return"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Return-2102"><a href="#Return-2102"><span class="linenos">2102</span></a><span class="k">class</span> <span class="nc">Return</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Return-2103"><a href="#Return-2103"><span class="linenos">2103</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Return.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Return.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Return.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Return.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Return.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Return.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Return.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Return.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Return.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Return.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Return.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Return.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Return.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Return.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Return.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Return.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Return.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Return.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Return.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Return.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Return.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Return.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Return.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Return.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Return.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Return.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Return.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Return.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Return.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Return.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Return.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Return.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Return.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Return.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Return.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Return.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Return.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Return.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Reference">
<input id="Reference-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Reference</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Reference-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Reference"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Reference-2106"><a href="#Reference-2106"><span class="linenos">2106</span></a><span class="k">class</span> <span class="nc">Reference</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Reference-2107"><a href="#Reference-2107"><span class="linenos">2107</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Reference.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Reference.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Reference.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Reference.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Reference.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Reference.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Reference.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Reference.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Reference.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Reference.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Reference.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Reference.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Reference.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Reference.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Reference.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Reference.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Reference.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Reference.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Reference.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Reference.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Reference.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Reference.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Reference.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Reference.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Reference.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Reference.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Reference.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Reference.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Reference.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Reference.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Reference.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Reference.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Reference.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Reference.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Reference.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Reference.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Reference.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Reference.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Tuple">
<input id="Tuple-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Tuple</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Tuple-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Tuple"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Tuple-2110"><a href="#Tuple-2110"><span class="linenos">2110</span></a><span class="k">class</span> <span class="nc">Tuple</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Tuple-2111"><a href="#Tuple-2111"><span class="linenos">2111</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Tuple-2112"><a href="#Tuple-2112"><span class="linenos">2112</span></a>
</span><span id="Tuple-2113"><a href="#Tuple-2113"><span class="linenos">2113</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
</span><span id="Tuple-2114"><a href="#Tuple-2114"><span class="linenos">2114</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Tuple-2115"><a href="#Tuple-2115"><span class="linenos">2115</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
</span><span id="Tuple-2116"><a href="#Tuple-2116"><span class="linenos">2116</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
</span><span id="Tuple-2117"><a href="#Tuple-2117"><span class="linenos">2117</span></a> <span class="n">this</span><span class="o">=</span><span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
</span><span id="Tuple-2118"><a href="#Tuple-2118"><span class="linenos">2118</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
</span><span id="Tuple-2119"><a href="#Tuple-2119"><span class="linenos">2119</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Tuple-2120"><a href="#Tuple-2120"><span class="linenos">2120</span></a> <span class="p">)</span>
</span></pre></div>
<div id="Tuple.isin" class="classattr">
<input id="Tuple.isin-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">isin</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Any</span>,</span><span class="param"> <span class="n">query</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#In">sqlglot.expressions.In</a></span>:</span></span>
<label class="view-source-button" for="Tuple.isin-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Tuple.isin"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Tuple.isin-2113"><a href="#Tuple.isin-2113"><span class="linenos">2113</span></a> <span class="k">def</span> <span class="nf">isin</span><span class="p">(</span>
</span><span id="Tuple.isin-2114"><a href="#Tuple.isin-2114"><span class="linenos">2114</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">query</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Tuple.isin-2115"><a href="#Tuple.isin-2115"><span class="linenos">2115</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">In</span><span class="p">:</span>
</span><span id="Tuple.isin-2116"><a href="#Tuple.isin-2116"><span class="linenos">2116</span></a> <span class="k">return</span> <span class="n">In</span><span class="p">(</span>
</span><span id="Tuple.isin-2117"><a href="#Tuple.isin-2117"><span class="linenos">2117</span></a> <span class="n">this</span><span class="o">=</span><span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">),</span>
</span><span id="Tuple.isin-2118"><a href="#Tuple.isin-2118"><span class="linenos">2118</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">],</span>
</span><span id="Tuple.isin-2119"><a href="#Tuple.isin-2119"><span class="linenos">2119</span></a> <span class="n">query</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">query</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">if</span> <span class="n">query</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Tuple.isin-2120"><a href="#Tuple.isin-2120"><span class="linenos">2120</span></a> <span class="p">)</span>
</span></pre></div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Tuple.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Tuple.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Tuple.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Tuple.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Tuple.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Tuple.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Tuple.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Tuple.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Tuple.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Tuple.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Tuple.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Tuple.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Tuple.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Tuple.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Tuple.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Tuple.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Tuple.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Tuple.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Tuple.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Tuple.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Tuple.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Tuple.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Tuple.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Tuple.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Tuple.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Tuple.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Tuple.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Tuple.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Tuple.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Tuple.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Tuple.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Tuple.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Tuple.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Tuple.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Tuple.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Tuple.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Tuple.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Tuple.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Subqueryable">
<input id="Subqueryable-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Subqueryable</span><wbr>(<span class="base"><a href="#Unionable">Unionable</a></span>):
<label class="view-source-button" for="Subqueryable-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Subqueryable"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable-2123"><a href="#Subqueryable-2123"><span class="linenos">2123</span></a><span class="k">class</span> <span class="nc">Subqueryable</span><span class="p">(</span><span class="n">Unionable</span><span class="p">):</span>
</span><span id="Subqueryable-2124"><a href="#Subqueryable-2124"><span class="linenos">2124</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
</span><span id="Subqueryable-2125"><a href="#Subqueryable-2125"><span class="linenos">2125</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Subqueryable-2126"><a href="#Subqueryable-2126"><span class="linenos">2126</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
</span><span id="Subqueryable-2127"><a href="#Subqueryable-2127"><span class="linenos">2127</span></a>
</span><span id="Subqueryable-2128"><a href="#Subqueryable-2128"><span class="linenos">2128</span></a><span class="sd"> Example:</span>
</span><span id="Subqueryable-2129"><a href="#Subqueryable-2129"><span class="linenos">2129</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
</span><span id="Subqueryable-2130"><a href="#Subqueryable-2130"><span class="linenos">2130</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
</span><span id="Subqueryable-2131"><a href="#Subqueryable-2131"><span class="linenos">2131</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
</span><span id="Subqueryable-2132"><a href="#Subqueryable-2132"><span class="linenos">2132</span></a>
</span><span id="Subqueryable-2133"><a href="#Subqueryable-2133"><span class="linenos">2133</span></a><span class="sd"> Args:</span>
</span><span id="Subqueryable-2134"><a href="#Subqueryable-2134"><span class="linenos">2134</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
</span><span id="Subqueryable-2135"><a href="#Subqueryable-2135"><span class="linenos">2135</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
</span><span id="Subqueryable-2136"><a href="#Subqueryable-2136"><span class="linenos">2136</span></a>
</span><span id="Subqueryable-2137"><a href="#Subqueryable-2137"><span class="linenos">2137</span></a><span class="sd"> Returns:</span>
</span><span id="Subqueryable-2138"><a href="#Subqueryable-2138"><span class="linenos">2138</span></a><span class="sd"> Alias: the subquery</span>
</span><span id="Subqueryable-2139"><a href="#Subqueryable-2139"><span class="linenos">2139</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Subqueryable-2140"><a href="#Subqueryable-2140"><span class="linenos">2140</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="Subqueryable-2141"><a href="#Subqueryable-2141"><span class="linenos">2141</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="Subqueryable-2142"><a href="#Subqueryable-2142"><span class="linenos">2142</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span>
</span><span id="Subqueryable-2143"><a href="#Subqueryable-2143"><span class="linenos">2143</span></a>
</span><span id="Subqueryable-2144"><a href="#Subqueryable-2144"><span class="linenos">2144</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
</span><span id="Subqueryable-2145"><a href="#Subqueryable-2145"><span class="linenos">2145</span></a>
</span><span id="Subqueryable-2146"><a href="#Subqueryable-2146"><span class="linenos">2146</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
</span><span id="Subqueryable-2147"><a href="#Subqueryable-2147"><span class="linenos">2147</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Subqueryable-2148"><a href="#Subqueryable-2148"><span class="linenos">2148</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Subqueryable-2149"><a href="#Subqueryable-2149"><span class="linenos">2149</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
</span><span id="Subqueryable-2150"><a href="#Subqueryable-2150"><span class="linenos">2150</span></a>
</span><span id="Subqueryable-2151"><a href="#Subqueryable-2151"><span class="linenos">2151</span></a> <span class="nd">@property</span>
</span><span id="Subqueryable-2152"><a href="#Subqueryable-2152"><span class="linenos">2152</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Subqueryable-2153"><a href="#Subqueryable-2153"><span class="linenos">2153</span></a> <span class="n">with_</span> <span class="o">=</span> <span class="bp">self</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;with&quot;</span><span class="p">)</span>
</span><span id="Subqueryable-2154"><a href="#Subqueryable-2154"><span class="linenos">2154</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">with_</span><span class="p">:</span>
</span><span id="Subqueryable-2155"><a href="#Subqueryable-2155"><span class="linenos">2155</span></a> <span class="k">return</span> <span class="p">[]</span>
</span><span id="Subqueryable-2156"><a href="#Subqueryable-2156"><span class="linenos">2156</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span>
</span><span id="Subqueryable-2157"><a href="#Subqueryable-2157"><span class="linenos">2157</span></a>
</span><span id="Subqueryable-2158"><a href="#Subqueryable-2158"><span class="linenos">2158</span></a> <span class="nd">@property</span>
</span><span id="Subqueryable-2159"><a href="#Subqueryable-2159"><span class="linenos">2159</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Subqueryable-2160"><a href="#Subqueryable-2160"><span class="linenos">2160</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `selects`&quot;</span><span class="p">)</span>
</span><span id="Subqueryable-2161"><a href="#Subqueryable-2161"><span class="linenos">2161</span></a>
</span><span id="Subqueryable-2162"><a href="#Subqueryable-2162"><span class="linenos">2162</span></a> <span class="nd">@property</span>
</span><span id="Subqueryable-2163"><a href="#Subqueryable-2163"><span class="linenos">2163</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Subqueryable-2164"><a href="#Subqueryable-2164"><span class="linenos">2164</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Subqueryable objects must implement `named_selects`&quot;</span><span class="p">)</span>
</span><span id="Subqueryable-2165"><a href="#Subqueryable-2165"><span class="linenos">2165</span></a>
</span><span id="Subqueryable-2166"><a href="#Subqueryable-2166"><span class="linenos">2166</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
</span><span id="Subqueryable-2167"><a href="#Subqueryable-2167"><span class="linenos">2167</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Subqueryable-2168"><a href="#Subqueryable-2168"><span class="linenos">2168</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Subqueryable-2169"><a href="#Subqueryable-2169"><span class="linenos">2169</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Subqueryable-2170"><a href="#Subqueryable-2170"><span class="linenos">2170</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Subqueryable-2171"><a href="#Subqueryable-2171"><span class="linenos">2171</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Subqueryable-2172"><a href="#Subqueryable-2172"><span class="linenos">2172</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Subqueryable-2173"><a href="#Subqueryable-2173"><span class="linenos">2173</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Subqueryable-2174"><a href="#Subqueryable-2174"><span class="linenos">2174</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Subqueryable-2175"><a href="#Subqueryable-2175"><span class="linenos">2175</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
</span><span id="Subqueryable-2176"><a href="#Subqueryable-2176"><span class="linenos">2176</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Subqueryable-2177"><a href="#Subqueryable-2177"><span class="linenos">2177</span></a><span class="sd"> Append to or set the common table expressions.</span>
</span><span id="Subqueryable-2178"><a href="#Subqueryable-2178"><span class="linenos">2178</span></a>
</span><span id="Subqueryable-2179"><a href="#Subqueryable-2179"><span class="linenos">2179</span></a><span class="sd"> Example:</span>
</span><span id="Subqueryable-2180"><a href="#Subqueryable-2180"><span class="linenos">2180</span></a><span class="sd"> &gt;&gt;&gt; Select().with_(&quot;tbl2&quot;, as_=&quot;SELECT * FROM tbl&quot;).select(&quot;x&quot;).from_(&quot;tbl2&quot;).sql()</span>
</span><span id="Subqueryable-2181"><a href="#Subqueryable-2181"><span class="linenos">2181</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
</span><span id="Subqueryable-2182"><a href="#Subqueryable-2182"><span class="linenos">2182</span></a>
</span><span id="Subqueryable-2183"><a href="#Subqueryable-2183"><span class="linenos">2183</span></a><span class="sd"> Args:</span>
</span><span id="Subqueryable-2184"><a href="#Subqueryable-2184"><span class="linenos">2184</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
</span><span id="Subqueryable-2185"><a href="#Subqueryable-2185"><span class="linenos">2185</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
</span><span id="Subqueryable-2186"><a href="#Subqueryable-2186"><span class="linenos">2186</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
</span><span id="Subqueryable-2187"><a href="#Subqueryable-2187"><span class="linenos">2187</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Subqueryable-2188"><a href="#Subqueryable-2188"><span class="linenos">2188</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
</span><span id="Subqueryable-2189"><a href="#Subqueryable-2189"><span class="linenos">2189</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Subqueryable-2190"><a href="#Subqueryable-2190"><span class="linenos">2190</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="Subqueryable-2191"><a href="#Subqueryable-2191"><span class="linenos">2191</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Subqueryable-2192"><a href="#Subqueryable-2192"><span class="linenos">2192</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Subqueryable-2193"><a href="#Subqueryable-2193"><span class="linenos">2193</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Subqueryable-2194"><a href="#Subqueryable-2194"><span class="linenos">2194</span></a>
</span><span id="Subqueryable-2195"><a href="#Subqueryable-2195"><span class="linenos">2195</span></a><span class="sd"> Returns:</span>
</span><span id="Subqueryable-2196"><a href="#Subqueryable-2196"><span class="linenos">2196</span></a><span class="sd"> The modified expression.</span>
</span><span id="Subqueryable-2197"><a href="#Subqueryable-2197"><span class="linenos">2197</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Subqueryable-2198"><a href="#Subqueryable-2198"><span class="linenos">2198</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
</span><span id="Subqueryable-2199"><a href="#Subqueryable-2199"><span class="linenos">2199</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Subqueryable-2200"><a href="#Subqueryable-2200"><span class="linenos">2200</span></a> <span class="p">)</span>
</span></pre></div>
<div id="Subqueryable.subquery" class="classattr">
<input id="Subqueryable.subquery-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">subquery</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="n"><a href="#Subquery">sqlglot.expressions.Subquery</a></span>:</span></span>
<label class="view-source-button" for="Subqueryable.subquery-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Subqueryable.subquery"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.subquery-2124"><a href="#Subqueryable.subquery-2124"><span class="linenos">2124</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subquery</span><span class="p">:</span>
</span><span id="Subqueryable.subquery-2125"><a href="#Subqueryable.subquery-2125"><span class="linenos">2125</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Subqueryable.subquery-2126"><a href="#Subqueryable.subquery-2126"><span class="linenos">2126</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span>
</span><span id="Subqueryable.subquery-2127"><a href="#Subqueryable.subquery-2127"><span class="linenos">2127</span></a>
</span><span id="Subqueryable.subquery-2128"><a href="#Subqueryable.subquery-2128"><span class="linenos">2128</span></a><span class="sd"> Example:</span>
</span><span id="Subqueryable.subquery-2129"><a href="#Subqueryable.subquery-2129"><span class="linenos">2129</span></a><span class="sd"> &gt;&gt;&gt; subquery = Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).subquery()</span>
</span><span id="Subqueryable.subquery-2130"><a href="#Subqueryable.subquery-2130"><span class="linenos">2130</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(subquery).sql()</span>
</span><span id="Subqueryable.subquery-2131"><a href="#Subqueryable.subquery-2131"><span class="linenos">2131</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
</span><span id="Subqueryable.subquery-2132"><a href="#Subqueryable.subquery-2132"><span class="linenos">2132</span></a>
</span><span id="Subqueryable.subquery-2133"><a href="#Subqueryable.subquery-2133"><span class="linenos">2133</span></a><span class="sd"> Args:</span>
</span><span id="Subqueryable.subquery-2134"><a href="#Subqueryable.subquery-2134"><span class="linenos">2134</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span>
</span><span id="Subqueryable.subquery-2135"><a href="#Subqueryable.subquery-2135"><span class="linenos">2135</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span>
</span><span id="Subqueryable.subquery-2136"><a href="#Subqueryable.subquery-2136"><span class="linenos">2136</span></a>
</span><span id="Subqueryable.subquery-2137"><a href="#Subqueryable.subquery-2137"><span class="linenos">2137</span></a><span class="sd"> Returns:</span>
</span><span id="Subqueryable.subquery-2138"><a href="#Subqueryable.subquery-2138"><span class="linenos">2138</span></a><span class="sd"> Alias: the subquery</span>
</span><span id="Subqueryable.subquery-2139"><a href="#Subqueryable.subquery-2139"><span class="linenos">2139</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Subqueryable.subquery-2140"><a href="#Subqueryable.subquery-2140"><span class="linenos">2140</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="Subqueryable.subquery-2141"><a href="#Subqueryable.subquery-2141"><span class="linenos">2141</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="Subqueryable.subquery-2142"><a href="#Subqueryable.subquery-2142"><span class="linenos">2142</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span>
</span><span id="Subqueryable.subquery-2143"><a href="#Subqueryable.subquery-2143"><span class="linenos">2143</span></a>
</span><span id="Subqueryable.subquery-2144"><a href="#Subqueryable.subquery-2144"><span class="linenos">2144</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Convert this expression to an aliased expression that can be used as a Subquery.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">subquery</span> <span class="o">=</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">()</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">subquery</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT x FROM (SELECT x FROM tbl)&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>alias (str | Identifier):</strong> an optional alias for the subquery</li>
<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Alias: the subquery</p>
</blockquote>
</div>
</div>
<div id="Subqueryable.limit" class="classattr">
<input id="Subqueryable.limit-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">limit</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="nb">int</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Subqueryable.limit-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Subqueryable.limit"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.limit-2146"><a href="#Subqueryable.limit-2146"><span class="linenos">2146</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
</span><span id="Subqueryable.limit-2147"><a href="#Subqueryable.limit-2147"><span class="linenos">2147</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Subqueryable.limit-2148"><a href="#Subqueryable.limit-2148"><span class="linenos">2148</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Subqueryable.limit-2149"><a href="#Subqueryable.limit-2149"><span class="linenos">2149</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span>
</span></pre></div>
</div>
<div id="Subqueryable.with_" class="classattr">
<input id="Subqueryable.with_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">with_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">as_</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">recursive</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Subqueryable">sqlglot.expressions.Subqueryable</a></span>:</span></span>
<label class="view-source-button" for="Subqueryable.with_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Subqueryable.with_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.with_-2166"><a href="#Subqueryable.with_-2166"><span class="linenos">2166</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span>
</span><span id="Subqueryable.with_-2167"><a href="#Subqueryable.with_-2167"><span class="linenos">2167</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Subqueryable.with_-2168"><a href="#Subqueryable.with_-2168"><span class="linenos">2168</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Subqueryable.with_-2169"><a href="#Subqueryable.with_-2169"><span class="linenos">2169</span></a> <span class="n">as_</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Subqueryable.with_-2170"><a href="#Subqueryable.with_-2170"><span class="linenos">2170</span></a> <span class="n">recursive</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Subqueryable.with_-2171"><a href="#Subqueryable.with_-2171"><span class="linenos">2171</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Subqueryable.with_-2172"><a href="#Subqueryable.with_-2172"><span class="linenos">2172</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Subqueryable.with_-2173"><a href="#Subqueryable.with_-2173"><span class="linenos">2173</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Subqueryable.with_-2174"><a href="#Subqueryable.with_-2174"><span class="linenos">2174</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Subqueryable.with_-2175"><a href="#Subqueryable.with_-2175"><span class="linenos">2175</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Subqueryable</span><span class="p">:</span>
</span><span id="Subqueryable.with_-2176"><a href="#Subqueryable.with_-2176"><span class="linenos">2176</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Subqueryable.with_-2177"><a href="#Subqueryable.with_-2177"><span class="linenos">2177</span></a><span class="sd"> Append to or set the common table expressions.</span>
</span><span id="Subqueryable.with_-2178"><a href="#Subqueryable.with_-2178"><span class="linenos">2178</span></a>
</span><span id="Subqueryable.with_-2179"><a href="#Subqueryable.with_-2179"><span class="linenos">2179</span></a><span class="sd"> Example:</span>
</span><span id="Subqueryable.with_-2180"><a href="#Subqueryable.with_-2180"><span class="linenos">2180</span></a><span class="sd"> &gt;&gt;&gt; Select().with_(&quot;tbl2&quot;, as_=&quot;SELECT * FROM tbl&quot;).select(&quot;x&quot;).from_(&quot;tbl2&quot;).sql()</span>
</span><span id="Subqueryable.with_-2181"><a href="#Subqueryable.with_-2181"><span class="linenos">2181</span></a><span class="sd"> &#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
</span><span id="Subqueryable.with_-2182"><a href="#Subqueryable.with_-2182"><span class="linenos">2182</span></a>
</span><span id="Subqueryable.with_-2183"><a href="#Subqueryable.with_-2183"><span class="linenos">2183</span></a><span class="sd"> Args:</span>
</span><span id="Subqueryable.with_-2184"><a href="#Subqueryable.with_-2184"><span class="linenos">2184</span></a><span class="sd"> alias: the SQL code string to parse as the table name.</span>
</span><span id="Subqueryable.with_-2185"><a href="#Subqueryable.with_-2185"><span class="linenos">2185</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span>
</span><span id="Subqueryable.with_-2186"><a href="#Subqueryable.with_-2186"><span class="linenos">2186</span></a><span class="sd"> as_: the SQL code string to parse as the table expression.</span>
</span><span id="Subqueryable.with_-2187"><a href="#Subqueryable.with_-2187"><span class="linenos">2187</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Subqueryable.with_-2188"><a href="#Subqueryable.with_-2188"><span class="linenos">2188</span></a><span class="sd"> recursive: set the RECURSIVE part of the expression. Defaults to `False`.</span>
</span><span id="Subqueryable.with_-2189"><a href="#Subqueryable.with_-2189"><span class="linenos">2189</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Subqueryable.with_-2190"><a href="#Subqueryable.with_-2190"><span class="linenos">2190</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="Subqueryable.with_-2191"><a href="#Subqueryable.with_-2191"><span class="linenos">2191</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Subqueryable.with_-2192"><a href="#Subqueryable.with_-2192"><span class="linenos">2192</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Subqueryable.with_-2193"><a href="#Subqueryable.with_-2193"><span class="linenos">2193</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Subqueryable.with_-2194"><a href="#Subqueryable.with_-2194"><span class="linenos">2194</span></a>
</span><span id="Subqueryable.with_-2195"><a href="#Subqueryable.with_-2195"><span class="linenos">2195</span></a><span class="sd"> Returns:</span>
</span><span id="Subqueryable.with_-2196"><a href="#Subqueryable.with_-2196"><span class="linenos">2196</span></a><span class="sd"> The modified expression.</span>
</span><span id="Subqueryable.with_-2197"><a href="#Subqueryable.with_-2197"><span class="linenos">2197</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Subqueryable.with_-2198"><a href="#Subqueryable.with_-2198"><span class="linenos">2198</span></a> <span class="k">return</span> <span class="n">_apply_cte_builder</span><span class="p">(</span>
</span><span id="Subqueryable.with_-2199"><a href="#Subqueryable.with_-2199"><span class="linenos">2199</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="p">,</span> <span class="n">as_</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Subqueryable.with_-2200"><a href="#Subqueryable.with_-2200"><span class="linenos">2200</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Append to or set the common table expressions.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">with_</span><span class="p">(</span><span class="s2">&quot;tbl2&quot;</span><span class="p">,</span> <span class="n">as_</span><span class="o">=</span><span class="s2">&quot;SELECT * FROM tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl2&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>alias:</strong> the SQL code string to parse as the table name.
If an <code><a href="#Expression">Expression</a></code> instance is passed, this is used as-is.</li>
<li><strong>as_:</strong> the SQL code string to parse as the table expression.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>recursive:</strong> set the RECURSIVE part of the expression. Defaults to <code>False</code>.</li>
<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this resets the expressions.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified expression.</p>
</blockquote>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Subqueryable.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Subqueryable.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Subqueryable.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Subqueryable.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Subqueryable.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Subqueryable.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Subqueryable.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Subqueryable.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Subqueryable.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Subqueryable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Subqueryable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Subqueryable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Subqueryable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Subqueryable.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Subqueryable.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Subqueryable.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Subqueryable.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Subqueryable.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Subqueryable.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Subqueryable.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Subqueryable.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Subqueryable.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Subqueryable.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Subqueryable.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Subqueryable.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Subqueryable.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Subqueryable.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Subqueryable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Subqueryable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Subqueryable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Subqueryable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Subqueryable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Subqueryable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Subqueryable.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Subqueryable.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Subqueryable.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Subqueryable.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Subqueryable.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
<dd id="Subqueryable.union" class="function"><a href="#Unionable.union">union</a></dd>
<dd id="Subqueryable.intersect" class="function"><a href="#Unionable.intersect">intersect</a></dd>
<dd id="Subqueryable.except_" class="function"><a href="#Unionable.except_">except_</a></dd>
</div>
</dl>
</div>
</section>
<section id="Table">
<input id="Table-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Table</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Table-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Table"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Table-2226"><a href="#Table-2226"><span class="linenos">2226</span></a><span class="k">class</span> <span class="nc">Table</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Table-2227"><a href="#Table-2227"><span class="linenos">2227</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Table-2228"><a href="#Table-2228"><span class="linenos">2228</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Table-2229"><a href="#Table-2229"><span class="linenos">2229</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Table-2230"><a href="#Table-2230"><span class="linenos">2230</span></a> <span class="s2">&quot;db&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Table-2231"><a href="#Table-2231"><span class="linenos">2231</span></a> <span class="s2">&quot;catalog&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Table-2232"><a href="#Table-2232"><span class="linenos">2232</span></a> <span class="s2">&quot;laterals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Table-2233"><a href="#Table-2233"><span class="linenos">2233</span></a> <span class="s2">&quot;joins&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Table-2234"><a href="#Table-2234"><span class="linenos">2234</span></a> <span class="s2">&quot;pivots&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Table-2235"><a href="#Table-2235"><span class="linenos">2235</span></a> <span class="s2">&quot;hints&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Table-2236"><a href="#Table-2236"><span class="linenos">2236</span></a> <span class="s2">&quot;system_time&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Table-2237"><a href="#Table-2237"><span class="linenos">2237</span></a> <span class="p">}</span>
</span><span id="Table-2238"><a href="#Table-2238"><span class="linenos">2238</span></a>
</span><span id="Table-2239"><a href="#Table-2239"><span class="linenos">2239</span></a> <span class="nd">@property</span>
</span><span id="Table-2240"><a href="#Table-2240"><span class="linenos">2240</span></a> <span class="k">def</span> <span class="nf">db</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Table-2241"><a href="#Table-2241"><span class="linenos">2241</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">)</span>
</span><span id="Table-2242"><a href="#Table-2242"><span class="linenos">2242</span></a>
</span><span id="Table-2243"><a href="#Table-2243"><span class="linenos">2243</span></a> <span class="nd">@property</span>
</span><span id="Table-2244"><a href="#Table-2244"><span class="linenos">2244</span></a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Table-2245"><a href="#Table-2245"><span class="linenos">2245</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">)</span>
</span><span id="Table-2246"><a href="#Table-2246"><span class="linenos">2246</span></a>
</span><span id="Table-2247"><a href="#Table-2247"><span class="linenos">2247</span></a> <span class="nd">@property</span>
</span><span id="Table-2248"><a href="#Table-2248"><span class="linenos">2248</span></a> <span class="k">def</span> <span class="nf">parts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Identifier</span><span class="p">]:</span>
</span><span id="Table-2249"><a href="#Table-2249"><span class="linenos">2249</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the parts of a table in order catalog, db, table.&quot;&quot;&quot;</span>
</span><span id="Table-2250"><a href="#Table-2250"><span class="linenos">2250</span></a> <span class="k">return</span> <span class="p">[</span>
</span><span id="Table-2251"><a href="#Table-2251"><span class="linenos">2251</span></a> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Identifier</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">part</span><span class="p">])</span>
</span><span id="Table-2252"><a href="#Table-2252"><span class="linenos">2252</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">)</span>
</span><span id="Table-2253"><a href="#Table-2253"><span class="linenos">2253</span></a> <span class="k">if</span> <span class="bp">self</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="n">part</span><span class="p">)</span>
</span><span id="Table-2254"><a href="#Table-2254"><span class="linenos">2254</span></a> <span class="p">]</span>
</span></pre></div>
<div id="Table.parts" class="classattr">
<div class="attr variable">
<span class="name">parts</span><span class="annotation">: List[<a href="#Identifier">sqlglot.expressions.Identifier</a>]</span>
</div>
<a class="headerlink" href="#Table.parts"></a>
<div class="docstring"><p>Return the parts of a table in order catalog, db, table.</p>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Table.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Table.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Table.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Table.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Table.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Table.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Table.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Table.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Table.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Table.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Table.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Table.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Table.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Table.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Table.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Table.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Table.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Table.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Table.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Table.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Table.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Table.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Table.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Table.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Table.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Table.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Table.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Table.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Table.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Table.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Table.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Table.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Table.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Table.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Table.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Table.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Table.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Table.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="SystemTime">
<input id="SystemTime-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SystemTime</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="SystemTime-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SystemTime"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SystemTime-2258"><a href="#SystemTime-2258"><span class="linenos">2258</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="SystemTime-2259"><a href="#SystemTime-2259"><span class="linenos">2259</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="SystemTime-2260"><a href="#SystemTime-2260"><span class="linenos">2260</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="SystemTime-2261"><a href="#SystemTime-2261"><span class="linenos">2261</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="SystemTime-2262"><a href="#SystemTime-2262"><span class="linenos">2262</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="SystemTime-2263"><a href="#SystemTime-2263"><span class="linenos">2263</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SystemTime.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SystemTime.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SystemTime.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SystemTime.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SystemTime.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SystemTime.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SystemTime.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SystemTime.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SystemTime.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SystemTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SystemTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SystemTime.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SystemTime.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SystemTime.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SystemTime.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SystemTime.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SystemTime.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SystemTime.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SystemTime.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SystemTime.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SystemTime.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SystemTime.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SystemTime.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SystemTime.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SystemTime.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SystemTime.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SystemTime.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SystemTime.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SystemTime.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SystemTime.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SystemTime.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SystemTime.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SystemTime.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SystemTime.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SystemTime.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SystemTime.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SystemTime.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SystemTime.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Union">
<input id="Union-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Union</span><wbr>(<span class="base"><a href="#Subqueryable">Subqueryable</a></span>):
<label class="view-source-button" for="Union-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Union"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Union-2266"><a href="#Union-2266"><span class="linenos">2266</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
</span><span id="Union-2267"><a href="#Union-2267"><span class="linenos">2267</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Union-2268"><a href="#Union-2268"><span class="linenos">2268</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Union-2269"><a href="#Union-2269"><span class="linenos">2269</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Union-2270"><a href="#Union-2270"><span class="linenos">2270</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Union-2271"><a href="#Union-2271"><span class="linenos">2271</span></a> <span class="s2">&quot;distinct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Union-2272"><a href="#Union-2272"><span class="linenos">2272</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
</span><span id="Union-2273"><a href="#Union-2273"><span class="linenos">2273</span></a> <span class="p">}</span>
</span><span id="Union-2274"><a href="#Union-2274"><span class="linenos">2274</span></a>
</span><span id="Union-2275"><a href="#Union-2275"><span class="linenos">2275</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
</span><span id="Union-2276"><a href="#Union-2276"><span class="linenos">2276</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Union-2277"><a href="#Union-2277"><span class="linenos">2277</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Union-2278"><a href="#Union-2278"><span class="linenos">2278</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Union-2279"><a href="#Union-2279"><span class="linenos">2279</span></a><span class="sd"> Set the LIMIT expression.</span>
</span><span id="Union-2280"><a href="#Union-2280"><span class="linenos">2280</span></a>
</span><span id="Union-2281"><a href="#Union-2281"><span class="linenos">2281</span></a><span class="sd"> Example:</span>
</span><span id="Union-2282"><a href="#Union-2282"><span class="linenos">2282</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;1&quot;).union(select(&quot;1&quot;)).limit(1).sql()</span>
</span><span id="Union-2283"><a href="#Union-2283"><span class="linenos">2283</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
</span><span id="Union-2284"><a href="#Union-2284"><span class="linenos">2284</span></a>
</span><span id="Union-2285"><a href="#Union-2285"><span class="linenos">2285</span></a><span class="sd"> Args:</span>
</span><span id="Union-2286"><a href="#Union-2286"><span class="linenos">2286</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="Union-2287"><a href="#Union-2287"><span class="linenos">2287</span></a><span class="sd"> This can also be an integer.</span>
</span><span id="Union-2288"><a href="#Union-2288"><span class="linenos">2288</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
</span><span id="Union-2289"><a href="#Union-2289"><span class="linenos">2289</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
</span><span id="Union-2290"><a href="#Union-2290"><span class="linenos">2290</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Union-2291"><a href="#Union-2291"><span class="linenos">2291</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Union-2292"><a href="#Union-2292"><span class="linenos">2292</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Union-2293"><a href="#Union-2293"><span class="linenos">2293</span></a>
</span><span id="Union-2294"><a href="#Union-2294"><span class="linenos">2294</span></a><span class="sd"> Returns:</span>
</span><span id="Union-2295"><a href="#Union-2295"><span class="linenos">2295</span></a><span class="sd"> The limited subqueryable.</span>
</span><span id="Union-2296"><a href="#Union-2296"><span class="linenos">2296</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Union-2297"><a href="#Union-2297"><span class="linenos">2297</span></a> <span class="k">return</span> <span class="p">(</span>
</span><span id="Union-2298"><a href="#Union-2298"><span class="linenos">2298</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">)</span>
</span><span id="Union-2299"><a href="#Union-2299"><span class="linenos">2299</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">&quot;_l_0&quot;</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
</span><span id="Union-2300"><a href="#Union-2300"><span class="linenos">2300</span></a> <span class="o">.</span><span class="n">limit</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="Union-2301"><a href="#Union-2301"><span class="linenos">2301</span></a> <span class="p">)</span>
</span><span id="Union-2302"><a href="#Union-2302"><span class="linenos">2302</span></a>
</span><span id="Union-2303"><a href="#Union-2303"><span class="linenos">2303</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
</span><span id="Union-2304"><a href="#Union-2304"><span class="linenos">2304</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Union-2305"><a href="#Union-2305"><span class="linenos">2305</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Union-2306"><a href="#Union-2306"><span class="linenos">2306</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Union-2307"><a href="#Union-2307"><span class="linenos">2307</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Union-2308"><a href="#Union-2308"><span class="linenos">2308</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Union-2309"><a href="#Union-2309"><span class="linenos">2309</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Union-2310"><a href="#Union-2310"><span class="linenos">2310</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
</span><span id="Union-2311"><a href="#Union-2311"><span class="linenos">2311</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Append to or set the SELECT of the union recursively.</span>
</span><span id="Union-2312"><a href="#Union-2312"><span class="linenos">2312</span></a>
</span><span id="Union-2313"><a href="#Union-2313"><span class="linenos">2313</span></a><span class="sd"> Example:</span>
</span><span id="Union-2314"><a href="#Union-2314"><span class="linenos">2314</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
</span><span id="Union-2315"><a href="#Union-2315"><span class="linenos">2315</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;select a from x union select a from y union select a from z&quot;).select(&quot;b&quot;).sql()</span>
</span><span id="Union-2316"><a href="#Union-2316"><span class="linenos">2316</span></a><span class="sd"> &#39;SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z&#39;</span>
</span><span id="Union-2317"><a href="#Union-2317"><span class="linenos">2317</span></a>
</span><span id="Union-2318"><a href="#Union-2318"><span class="linenos">2318</span></a><span class="sd"> Args:</span>
</span><span id="Union-2319"><a href="#Union-2319"><span class="linenos">2319</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Union-2320"><a href="#Union-2320"><span class="linenos">2320</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Union-2321"><a href="#Union-2321"><span class="linenos">2321</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Union-2322"><a href="#Union-2322"><span class="linenos">2322</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="Union-2323"><a href="#Union-2323"><span class="linenos">2323</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Union-2324"><a href="#Union-2324"><span class="linenos">2324</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Union-2325"><a href="#Union-2325"><span class="linenos">2325</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Union-2326"><a href="#Union-2326"><span class="linenos">2326</span></a>
</span><span id="Union-2327"><a href="#Union-2327"><span class="linenos">2327</span></a><span class="sd"> Returns:</span>
</span><span id="Union-2328"><a href="#Union-2328"><span class="linenos">2328</span></a><span class="sd"> Union: the modified expression.</span>
</span><span id="Union-2329"><a href="#Union-2329"><span class="linenos">2329</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Union-2330"><a href="#Union-2330"><span class="linenos">2330</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
</span><span id="Union-2331"><a href="#Union-2331"><span class="linenos">2331</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="Union-2332"><a href="#Union-2332"><span class="linenos">2332</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span>
</span><span id="Union-2333"><a href="#Union-2333"><span class="linenos">2333</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Union-2334"><a href="#Union-2334"><span class="linenos">2334</span></a> <span class="p">)</span>
</span><span id="Union-2335"><a href="#Union-2335"><span class="linenos">2335</span></a> <span class="k">return</span> <span class="n">this</span>
</span><span id="Union-2336"><a href="#Union-2336"><span class="linenos">2336</span></a>
</span><span id="Union-2337"><a href="#Union-2337"><span class="linenos">2337</span></a> <span class="nd">@property</span>
</span><span id="Union-2338"><a href="#Union-2338"><span class="linenos">2338</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Union-2339"><a href="#Union-2339"><span class="linenos">2339</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">named_selects</span>
</span><span id="Union-2340"><a href="#Union-2340"><span class="linenos">2340</span></a>
</span><span id="Union-2341"><a href="#Union-2341"><span class="linenos">2341</span></a> <span class="nd">@property</span>
</span><span id="Union-2342"><a href="#Union-2342"><span class="linenos">2342</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="Union-2343"><a href="#Union-2343"><span class="linenos">2343</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span>
</span><span id="Union-2344"><a href="#Union-2344"><span class="linenos">2344</span></a>
</span><span id="Union-2345"><a href="#Union-2345"><span class="linenos">2345</span></a> <span class="nd">@property</span>
</span><span id="Union-2346"><a href="#Union-2346"><span class="linenos">2346</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Union-2347"><a href="#Union-2347"><span class="linenos">2347</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span>
</span><span id="Union-2348"><a href="#Union-2348"><span class="linenos">2348</span></a>
</span><span id="Union-2349"><a href="#Union-2349"><span class="linenos">2349</span></a> <span class="nd">@property</span>
</span><span id="Union-2350"><a href="#Union-2350"><span class="linenos">2350</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Union-2351"><a href="#Union-2351"><span class="linenos">2351</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
</span><span id="Union-2352"><a href="#Union-2352"><span class="linenos">2352</span></a>
</span><span id="Union-2353"><a href="#Union-2353"><span class="linenos">2353</span></a> <span class="nd">@property</span>
</span><span id="Union-2354"><a href="#Union-2354"><span class="linenos">2354</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Union-2355"><a href="#Union-2355"><span class="linenos">2355</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span></pre></div>
<div id="Union.limit" class="classattr">
<input id="Union.limit-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">limit</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="nb">int</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Union.limit-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Union.limit"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Union.limit-2275"><a href="#Union.limit-2275"><span class="linenos">2275</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
</span><span id="Union.limit-2276"><a href="#Union.limit-2276"><span class="linenos">2276</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Union.limit-2277"><a href="#Union.limit-2277"><span class="linenos">2277</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Union.limit-2278"><a href="#Union.limit-2278"><span class="linenos">2278</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Union.limit-2279"><a href="#Union.limit-2279"><span class="linenos">2279</span></a><span class="sd"> Set the LIMIT expression.</span>
</span><span id="Union.limit-2280"><a href="#Union.limit-2280"><span class="linenos">2280</span></a>
</span><span id="Union.limit-2281"><a href="#Union.limit-2281"><span class="linenos">2281</span></a><span class="sd"> Example:</span>
</span><span id="Union.limit-2282"><a href="#Union.limit-2282"><span class="linenos">2282</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;1&quot;).union(select(&quot;1&quot;)).limit(1).sql()</span>
</span><span id="Union.limit-2283"><a href="#Union.limit-2283"><span class="linenos">2283</span></a><span class="sd"> &#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
</span><span id="Union.limit-2284"><a href="#Union.limit-2284"><span class="linenos">2284</span></a>
</span><span id="Union.limit-2285"><a href="#Union.limit-2285"><span class="linenos">2285</span></a><span class="sd"> Args:</span>
</span><span id="Union.limit-2286"><a href="#Union.limit-2286"><span class="linenos">2286</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="Union.limit-2287"><a href="#Union.limit-2287"><span class="linenos">2287</span></a><span class="sd"> This can also be an integer.</span>
</span><span id="Union.limit-2288"><a href="#Union.limit-2288"><span class="linenos">2288</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
</span><span id="Union.limit-2289"><a href="#Union.limit-2289"><span class="linenos">2289</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
</span><span id="Union.limit-2290"><a href="#Union.limit-2290"><span class="linenos">2290</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Union.limit-2291"><a href="#Union.limit-2291"><span class="linenos">2291</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Union.limit-2292"><a href="#Union.limit-2292"><span class="linenos">2292</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Union.limit-2293"><a href="#Union.limit-2293"><span class="linenos">2293</span></a>
</span><span id="Union.limit-2294"><a href="#Union.limit-2294"><span class="linenos">2294</span></a><span class="sd"> Returns:</span>
</span><span id="Union.limit-2295"><a href="#Union.limit-2295"><span class="linenos">2295</span></a><span class="sd"> The limited subqueryable.</span>
</span><span id="Union.limit-2296"><a href="#Union.limit-2296"><span class="linenos">2296</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Union.limit-2297"><a href="#Union.limit-2297"><span class="linenos">2297</span></a> <span class="k">return</span> <span class="p">(</span>
</span><span id="Union.limit-2298"><a href="#Union.limit-2298"><span class="linenos">2298</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">)</span>
</span><span id="Union.limit-2299"><a href="#Union.limit-2299"><span class="linenos">2299</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">&quot;_l_0&quot;</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
</span><span id="Union.limit-2300"><a href="#Union.limit-2300"><span class="linenos">2300</span></a> <span class="o">.</span><span class="n">limit</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="Union.limit-2301"><a href="#Union.limit-2301"><span class="linenos">2301</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Set the LIMIT expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;1&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">union</span><span class="p">(</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;1&quot;</span><span class="p">))</span><span class="o">.</span><span class="n">limit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> the SQL code string to parse.
This can also be an integer.
If a <code><a href="#Limit">Limit</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#Limit">Limit</a></code>.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The limited subqueryable.</p>
</blockquote>
</div>
</div>
<div id="Union.select" class="classattr">
<input id="Union.select-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">select</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Union">sqlglot.expressions.Union</a></span>:</span></span>
<label class="view-source-button" for="Union.select-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Union.select"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Union.select-2303"><a href="#Union.select-2303"><span class="linenos">2303</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
</span><span id="Union.select-2304"><a href="#Union.select-2304"><span class="linenos">2304</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Union.select-2305"><a href="#Union.select-2305"><span class="linenos">2305</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Union.select-2306"><a href="#Union.select-2306"><span class="linenos">2306</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Union.select-2307"><a href="#Union.select-2307"><span class="linenos">2307</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Union.select-2308"><a href="#Union.select-2308"><span class="linenos">2308</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Union.select-2309"><a href="#Union.select-2309"><span class="linenos">2309</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Union.select-2310"><a href="#Union.select-2310"><span class="linenos">2310</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
</span><span id="Union.select-2311"><a href="#Union.select-2311"><span class="linenos">2311</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Append to or set the SELECT of the union recursively.</span>
</span><span id="Union.select-2312"><a href="#Union.select-2312"><span class="linenos">2312</span></a>
</span><span id="Union.select-2313"><a href="#Union.select-2313"><span class="linenos">2313</span></a><span class="sd"> Example:</span>
</span><span id="Union.select-2314"><a href="#Union.select-2314"><span class="linenos">2314</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
</span><span id="Union.select-2315"><a href="#Union.select-2315"><span class="linenos">2315</span></a><span class="sd"> &gt;&gt;&gt; parse_one(&quot;select a from x union select a from y union select a from z&quot;).select(&quot;b&quot;).sql()</span>
</span><span id="Union.select-2316"><a href="#Union.select-2316"><span class="linenos">2316</span></a><span class="sd"> &#39;SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z&#39;</span>
</span><span id="Union.select-2317"><a href="#Union.select-2317"><span class="linenos">2317</span></a>
</span><span id="Union.select-2318"><a href="#Union.select-2318"><span class="linenos">2318</span></a><span class="sd"> Args:</span>
</span><span id="Union.select-2319"><a href="#Union.select-2319"><span class="linenos">2319</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Union.select-2320"><a href="#Union.select-2320"><span class="linenos">2320</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Union.select-2321"><a href="#Union.select-2321"><span class="linenos">2321</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Union.select-2322"><a href="#Union.select-2322"><span class="linenos">2322</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="Union.select-2323"><a href="#Union.select-2323"><span class="linenos">2323</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Union.select-2324"><a href="#Union.select-2324"><span class="linenos">2324</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Union.select-2325"><a href="#Union.select-2325"><span class="linenos">2325</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Union.select-2326"><a href="#Union.select-2326"><span class="linenos">2326</span></a>
</span><span id="Union.select-2327"><a href="#Union.select-2327"><span class="linenos">2327</span></a><span class="sd"> Returns:</span>
</span><span id="Union.select-2328"><a href="#Union.select-2328"><span class="linenos">2328</span></a><span class="sd"> Union: the modified expression.</span>
</span><span id="Union.select-2329"><a href="#Union.select-2329"><span class="linenos">2329</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Union.select-2330"><a href="#Union.select-2330"><span class="linenos">2330</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span>
</span><span id="Union.select-2331"><a href="#Union.select-2331"><span class="linenos">2331</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="Union.select-2332"><a href="#Union.select-2332"><span class="linenos">2332</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span>
</span><span id="Union.select-2333"><a href="#Union.select-2333"><span class="linenos">2333</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Union.select-2334"><a href="#Union.select-2334"><span class="linenos">2334</span></a> <span class="p">)</span>
</span><span id="Union.select-2335"><a href="#Union.select-2335"><span class="linenos">2335</span></a> <span class="k">return</span> <span class="n">this</span>
</span></pre></div>
<div class="docstring"><p>Append to or set the SELECT of the union recursively.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;select a from x union select a from y union select a from z&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;b&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this resets the expressions.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Union: the modified expression.</p>
</blockquote>
</div>
</div>
<div id="Union.is_star" class="classattr">
<div class="attr variable">
<span class="name">is_star</span><span class="annotation">: bool</span>
</div>
<a class="headerlink" href="#Union.is_star"></a>
<div class="docstring"><p>Checks whether an expression is a star.</p>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Union.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Union.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Union.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Union.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Union.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Union.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Union.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Union.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Union.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Union.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Union.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Union.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Union.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Union.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Union.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Union.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Union.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Union.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Union.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Union.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Union.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Union.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Union.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Union.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Union.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Union.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Union.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Union.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Union.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Union.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Union.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Union.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Union.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Union.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Union.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Union.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Union.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Subqueryable">Subqueryable</a></dt>
<dd id="Union.subquery" class="function"><a href="#Subqueryable.subquery">subquery</a></dd>
<dd id="Union.with_" class="function"><a href="#Subqueryable.with_">with_</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
<dd id="Union.union" class="function"><a href="#Unionable.union">union</a></dd>
<dd id="Union.intersect" class="function"><a href="#Unionable.intersect">intersect</a></dd>
<dd id="Union.except_" class="function"><a href="#Unionable.except_">except_</a></dd>
</div>
</dl>
</div>
</section>
<section id="Except">
<input id="Except-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Except</span><wbr>(<span class="base"><a href="#Union">Union</a></span>):
<label class="view-source-button" for="Except-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Except"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Except-2358"><a href="#Except-2358"><span class="linenos">2358</span></a><span class="k">class</span> <span class="nc">Except</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
</span><span id="Except-2359"><a href="#Except-2359"><span class="linenos">2359</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Except.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Except.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Except.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Except.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Except.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Except.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Except.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Except.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Except.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Except.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Except.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Except.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Except.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Except.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Except.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Except.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Except.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Except.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Except.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Except.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Except.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Except.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Except.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Except.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Except.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Except.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Except.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Except.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Except.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Except.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Except.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Except.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Except.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Except.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Except.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Except.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Except.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Union">Union</a></dt>
<dd id="Except.limit" class="function"><a href="#Union.limit">limit</a></dd>
<dd id="Except.select" class="function"><a href="#Union.select">select</a></dd>
<dd id="Except.is_star" class="variable"><a href="#Union.is_star">is_star</a></dd>
</div>
<div><dt><a href="#Subqueryable">Subqueryable</a></dt>
<dd id="Except.subquery" class="function"><a href="#Subqueryable.subquery">subquery</a></dd>
<dd id="Except.with_" class="function"><a href="#Subqueryable.with_">with_</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
<dd id="Except.union" class="function"><a href="#Unionable.union">union</a></dd>
<dd id="Except.intersect" class="function"><a href="#Unionable.intersect">intersect</a></dd>
<dd id="Except.except_" class="function"><a href="#Unionable.except_">except_</a></dd>
</div>
</dl>
</div>
</section>
<section id="Intersect">
<input id="Intersect-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Intersect</span><wbr>(<span class="base"><a href="#Union">Union</a></span>):
<label class="view-source-button" for="Intersect-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Intersect"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Intersect-2362"><a href="#Intersect-2362"><span class="linenos">2362</span></a><span class="k">class</span> <span class="nc">Intersect</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span>
</span><span id="Intersect-2363"><a href="#Intersect-2363"><span class="linenos">2363</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Intersect.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Intersect.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Intersect.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Intersect.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Intersect.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Intersect.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Intersect.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Intersect.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Intersect.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Intersect.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Intersect.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Intersect.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Intersect.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Intersect.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Intersect.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Intersect.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Intersect.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Intersect.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Intersect.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Intersect.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Intersect.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Intersect.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Intersect.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Intersect.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Intersect.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Intersect.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Intersect.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Intersect.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Intersect.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Intersect.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Intersect.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Intersect.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Intersect.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Intersect.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Intersect.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Intersect.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Intersect.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Union">Union</a></dt>
<dd id="Intersect.limit" class="function"><a href="#Union.limit">limit</a></dd>
<dd id="Intersect.select" class="function"><a href="#Union.select">select</a></dd>
<dd id="Intersect.is_star" class="variable"><a href="#Union.is_star">is_star</a></dd>
</div>
<div><dt><a href="#Subqueryable">Subqueryable</a></dt>
<dd id="Intersect.subquery" class="function"><a href="#Subqueryable.subquery">subquery</a></dd>
<dd id="Intersect.with_" class="function"><a href="#Subqueryable.with_">with_</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
<dd id="Intersect.union" class="function"><a href="#Unionable.union">union</a></dd>
<dd id="Intersect.intersect" class="function"><a href="#Unionable.intersect">intersect</a></dd>
<dd id="Intersect.except_" class="function"><a href="#Unionable.except_">except_</a></dd>
</div>
</dl>
</div>
</section>
<section id="Unnest">
<input id="Unnest-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Unnest</span><wbr>(<span class="base"><a href="#UDTF">UDTF</a></span>):
<label class="view-source-button" for="Unnest-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Unnest"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Unnest-2366"><a href="#Unnest-2366"><span class="linenos">2366</span></a><span class="k">class</span> <span class="nc">Unnest</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
</span><span id="Unnest-2367"><a href="#Unnest-2367"><span class="linenos">2367</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Unnest-2368"><a href="#Unnest-2368"><span class="linenos">2368</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Unnest-2369"><a href="#Unnest-2369"><span class="linenos">2369</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Unnest-2370"><a href="#Unnest-2370"><span class="linenos">2370</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Unnest-2371"><a href="#Unnest-2371"><span class="linenos">2371</span></a> <span class="s2">&quot;offset&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Unnest-2372"><a href="#Unnest-2372"><span class="linenos">2372</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Unnest.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Unnest.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Unnest.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Unnest.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Unnest.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Unnest.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Unnest.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Unnest.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Unnest.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Unnest.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Unnest.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Unnest.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Unnest.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Unnest.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Unnest.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Unnest.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Unnest.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Unnest.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Unnest.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Unnest.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Unnest.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Unnest.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Unnest.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Unnest.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Unnest.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Unnest.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Unnest.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Unnest.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Unnest.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Unnest.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Unnest.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Unnest.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Unnest.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Unnest.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Unnest.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Unnest.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Unnest.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Unnest.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
<dd id="Unnest.union" class="function"><a href="#Unionable.union">union</a></dd>
<dd id="Unnest.intersect" class="function"><a href="#Unionable.intersect">intersect</a></dd>
<dd id="Unnest.except_" class="function"><a href="#Unionable.except_">except_</a></dd>
</div>
</dl>
</div>
</section>
<section id="Update">
<input id="Update-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Update</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Update-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Update"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Update-2375"><a href="#Update-2375"><span class="linenos">2375</span></a><span class="k">class</span> <span class="nc">Update</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Update-2376"><a href="#Update-2376"><span class="linenos">2376</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Update-2377"><a href="#Update-2377"><span class="linenos">2377</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Update-2378"><a href="#Update-2378"><span class="linenos">2378</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Update-2379"><a href="#Update-2379"><span class="linenos">2379</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Update-2380"><a href="#Update-2380"><span class="linenos">2380</span></a> <span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Update-2381"><a href="#Update-2381"><span class="linenos">2381</span></a> <span class="s2">&quot;where&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Update-2382"><a href="#Update-2382"><span class="linenos">2382</span></a> <span class="s2">&quot;returning&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Update-2383"><a href="#Update-2383"><span class="linenos">2383</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Update.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Update.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Update.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Update.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Update.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Update.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Update.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Update.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Update.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Update.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Update.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Update.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Update.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Update.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Update.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Update.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Update.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Update.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Update.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Update.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Update.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Update.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Update.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Update.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Update.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Update.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Update.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Update.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Update.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Update.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Update.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Update.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Update.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Update.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Update.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Update.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Update.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Update.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Values">
<input id="Values-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Values</span><wbr>(<span class="base"><a href="#UDTF">UDTF</a></span>):
<label class="view-source-button" for="Values-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Values"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Values-2386"><a href="#Values-2386"><span class="linenos">2386</span></a><span class="k">class</span> <span class="nc">Values</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span>
</span><span id="Values-2387"><a href="#Values-2387"><span class="linenos">2387</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Values-2388"><a href="#Values-2388"><span class="linenos">2388</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Values-2389"><a href="#Values-2389"><span class="linenos">2389</span></a> <span class="s2">&quot;ordinality&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Values-2390"><a href="#Values-2390"><span class="linenos">2390</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Values-2391"><a href="#Values-2391"><span class="linenos">2391</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Values.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Values.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Values.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Values.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Values.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Values.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Values.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Values.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Values.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Values.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Values.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Values.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Values.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Values.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Values.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Values.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Values.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Values.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Values.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Values.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Values.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Values.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Values.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Values.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Values.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Values.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Values.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Values.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Values.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Values.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Values.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Values.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Values.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Values.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Values.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Values.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Values.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Values.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
<dd id="Values.union" class="function"><a href="#Unionable.union">union</a></dd>
<dd id="Values.intersect" class="function"><a href="#Unionable.intersect">intersect</a></dd>
<dd id="Values.except_" class="function"><a href="#Unionable.except_">except_</a></dd>
</div>
</dl>
</div>
</section>
<section id="Var">
<input id="Var-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Var</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Var-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Var"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Var-2394"><a href="#Var-2394"><span class="linenos">2394</span></a><span class="k">class</span> <span class="nc">Var</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Var-2395"><a href="#Var-2395"><span class="linenos">2395</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Var.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Var.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Var.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Var.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Var.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Var.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Var.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Var.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Var.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Var.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Var.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Var.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Var.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Var.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Var.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Var.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Var.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Var.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Var.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Var.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Var.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Var.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Var.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Var.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Var.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Var.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Var.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Var.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Var.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Var.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Var.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Var.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Var.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Var.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Var.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Var.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Var.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Var.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Schema">
<input id="Schema-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Schema</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Schema-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Schema"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Schema-2398"><a href="#Schema-2398"><span class="linenos">2398</span></a><span class="k">class</span> <span class="nc">Schema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Schema-2399"><a href="#Schema-2399"><span class="linenos">2399</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Schema.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Schema.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Schema.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Schema.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Schema.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Schema.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Schema.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Schema.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Schema.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Schema.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Schema.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Schema.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Schema.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Schema.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Schema.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Schema.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Schema.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Schema.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Schema.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Schema.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Schema.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Schema.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Schema.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Schema.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Schema.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Schema.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Schema.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Schema.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Schema.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Schema.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Schema.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Schema.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Schema.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Schema.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Schema.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Schema.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Schema.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Schema.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Lock">
<input id="Lock-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Lock</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Lock-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Lock"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Lock-2404"><a href="#Lock-2404"><span class="linenos">2404</span></a><span class="k">class</span> <span class="nc">Lock</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Lock-2405"><a href="#Lock-2405"><span class="linenos">2405</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;update&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;wait&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Lock.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Lock.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Lock.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Lock.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Lock.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Lock.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Lock.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Lock.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Lock.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Lock.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Lock.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Lock.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Lock.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Lock.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Lock.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Lock.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Lock.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Lock.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Lock.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Lock.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Lock.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Lock.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Lock.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Lock.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Lock.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Lock.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Lock.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Lock.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Lock.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Lock.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Lock.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Lock.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Lock.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Lock.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Lock.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Lock.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Lock.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Lock.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Select">
<input id="Select-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Select</span><wbr>(<span class="base"><a href="#Subqueryable">Subqueryable</a></span>):
<label class="view-source-button" for="Select-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select-2408"><a href="#Select-2408"><span class="linenos">2408</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span>
</span><span id="Select-2409"><a href="#Select-2409"><span class="linenos">2409</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Select-2410"><a href="#Select-2410"><span class="linenos">2410</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Select-2411"><a href="#Select-2411"><span class="linenos">2411</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Select-2412"><a href="#Select-2412"><span class="linenos">2412</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Select-2413"><a href="#Select-2413"><span class="linenos">2413</span></a> <span class="s2">&quot;hint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Select-2414"><a href="#Select-2414"><span class="linenos">2414</span></a> <span class="s2">&quot;distinct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Select-2415"><a href="#Select-2415"><span class="linenos">2415</span></a> <span class="s2">&quot;struct&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax#return_query_results_as_a_value_table</span>
</span><span id="Select-2416"><a href="#Select-2416"><span class="linenos">2416</span></a> <span class="s2">&quot;value&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Select-2417"><a href="#Select-2417"><span class="linenos">2417</span></a> <span class="s2">&quot;into&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Select-2418"><a href="#Select-2418"><span class="linenos">2418</span></a> <span class="s2">&quot;from&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Select-2419"><a href="#Select-2419"><span class="linenos">2419</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
</span><span id="Select-2420"><a href="#Select-2420"><span class="linenos">2420</span></a> <span class="p">}</span>
</span><span id="Select-2421"><a href="#Select-2421"><span class="linenos">2421</span></a>
</span><span id="Select-2422"><a href="#Select-2422"><span class="linenos">2422</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
</span><span id="Select-2423"><a href="#Select-2423"><span class="linenos">2423</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Select-2424"><a href="#Select-2424"><span class="linenos">2424</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2425"><a href="#Select-2425"><span class="linenos">2425</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-2426"><a href="#Select-2426"><span class="linenos">2426</span></a><span class="sd"> Set the FROM expression.</span>
</span><span id="Select-2427"><a href="#Select-2427"><span class="linenos">2427</span></a>
</span><span id="Select-2428"><a href="#Select-2428"><span class="linenos">2428</span></a><span class="sd"> Example:</span>
</span><span id="Select-2429"><a href="#Select-2429"><span class="linenos">2429</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
</span><span id="Select-2430"><a href="#Select-2430"><span class="linenos">2430</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
</span><span id="Select-2431"><a href="#Select-2431"><span class="linenos">2431</span></a>
</span><span id="Select-2432"><a href="#Select-2432"><span class="linenos">2432</span></a><span class="sd"> Args:</span>
</span><span id="Select-2433"><a href="#Select-2433"><span class="linenos">2433</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
</span><span id="Select-2434"><a href="#Select-2434"><span class="linenos">2434</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
</span><span id="Select-2435"><a href="#Select-2435"><span class="linenos">2435</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
</span><span id="Select-2436"><a href="#Select-2436"><span class="linenos">2436</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select-2437"><a href="#Select-2437"><span class="linenos">2437</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-2438"><a href="#Select-2438"><span class="linenos">2438</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2439"><a href="#Select-2439"><span class="linenos">2439</span></a>
</span><span id="Select-2440"><a href="#Select-2440"><span class="linenos">2440</span></a><span class="sd"> Returns:</span>
</span><span id="Select-2441"><a href="#Select-2441"><span class="linenos">2441</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select-2442"><a href="#Select-2442"><span class="linenos">2442</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2443"><a href="#Select-2443"><span class="linenos">2443</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="Select-2444"><a href="#Select-2444"><span class="linenos">2444</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="Select-2445"><a href="#Select-2445"><span class="linenos">2445</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2446"><a href="#Select-2446"><span class="linenos">2446</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;from&quot;</span><span class="p">,</span>
</span><span id="Select-2447"><a href="#Select-2447"><span class="linenos">2447</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
</span><span id="Select-2448"><a href="#Select-2448"><span class="linenos">2448</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span>
</span><span id="Select-2449"><a href="#Select-2449"><span class="linenos">2449</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2450"><a href="#Select-2450"><span class="linenos">2450</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2451"><a href="#Select-2451"><span class="linenos">2451</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2452"><a href="#Select-2452"><span class="linenos">2452</span></a> <span class="p">)</span>
</span><span id="Select-2453"><a href="#Select-2453"><span class="linenos">2453</span></a>
</span><span id="Select-2454"><a href="#Select-2454"><span class="linenos">2454</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
</span><span id="Select-2455"><a href="#Select-2455"><span class="linenos">2455</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2456"><a href="#Select-2456"><span class="linenos">2456</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select-2457"><a href="#Select-2457"><span class="linenos">2457</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2458"><a href="#Select-2458"><span class="linenos">2458</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2459"><a href="#Select-2459"><span class="linenos">2459</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2460"><a href="#Select-2460"><span class="linenos">2460</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2461"><a href="#Select-2461"><span class="linenos">2461</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2462"><a href="#Select-2462"><span class="linenos">2462</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-2463"><a href="#Select-2463"><span class="linenos">2463</span></a><span class="sd"> Set the GROUP BY expression.</span>
</span><span id="Select-2464"><a href="#Select-2464"><span class="linenos">2464</span></a>
</span><span id="Select-2465"><a href="#Select-2465"><span class="linenos">2465</span></a><span class="sd"> Example:</span>
</span><span id="Select-2466"><a href="#Select-2466"><span class="linenos">2466</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;, &quot;COUNT(1)&quot;).group_by(&quot;x&quot;).sql()</span>
</span><span id="Select-2467"><a href="#Select-2467"><span class="linenos">2467</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
</span><span id="Select-2468"><a href="#Select-2468"><span class="linenos">2468</span></a>
</span><span id="Select-2469"><a href="#Select-2469"><span class="linenos">2469</span></a><span class="sd"> Args:</span>
</span><span id="Select-2470"><a href="#Select-2470"><span class="linenos">2470</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select-2471"><a href="#Select-2471"><span class="linenos">2471</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
</span><span id="Select-2472"><a href="#Select-2472"><span class="linenos">2472</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
</span><span id="Select-2473"><a href="#Select-2473"><span class="linenos">2473</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span>
</span><span id="Select-2474"><a href="#Select-2474"><span class="linenos">2474</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select-2475"><a href="#Select-2475"><span class="linenos">2475</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
</span><span id="Select-2476"><a href="#Select-2476"><span class="linenos">2476</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select-2477"><a href="#Select-2477"><span class="linenos">2477</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-2478"><a href="#Select-2478"><span class="linenos">2478</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2479"><a href="#Select-2479"><span class="linenos">2479</span></a>
</span><span id="Select-2480"><a href="#Select-2480"><span class="linenos">2480</span></a><span class="sd"> Returns:</span>
</span><span id="Select-2481"><a href="#Select-2481"><span class="linenos">2481</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select-2482"><a href="#Select-2482"><span class="linenos">2482</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2483"><a href="#Select-2483"><span class="linenos">2483</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span>
</span><span id="Select-2484"><a href="#Select-2484"><span class="linenos">2484</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
</span><span id="Select-2485"><a href="#Select-2485"><span class="linenos">2485</span></a>
</span><span id="Select-2486"><a href="#Select-2486"><span class="linenos">2486</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="Select-2487"><a href="#Select-2487"><span class="linenos">2487</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select-2488"><a href="#Select-2488"><span class="linenos">2488</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2489"><a href="#Select-2489"><span class="linenos">2489</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;group&quot;</span><span class="p">,</span>
</span><span id="Select-2490"><a href="#Select-2490"><span class="linenos">2490</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select-2491"><a href="#Select-2491"><span class="linenos">2491</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2492"><a href="#Select-2492"><span class="linenos">2492</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;GROUP BY&quot;</span><span class="p">,</span>
</span><span id="Select-2493"><a href="#Select-2493"><span class="linenos">2493</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
</span><span id="Select-2494"><a href="#Select-2494"><span class="linenos">2494</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2495"><a href="#Select-2495"><span class="linenos">2495</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2496"><a href="#Select-2496"><span class="linenos">2496</span></a> <span class="p">)</span>
</span><span id="Select-2497"><a href="#Select-2497"><span class="linenos">2497</span></a>
</span><span id="Select-2498"><a href="#Select-2498"><span class="linenos">2498</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span>
</span><span id="Select-2499"><a href="#Select-2499"><span class="linenos">2499</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2500"><a href="#Select-2500"><span class="linenos">2500</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select-2501"><a href="#Select-2501"><span class="linenos">2501</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2502"><a href="#Select-2502"><span class="linenos">2502</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2503"><a href="#Select-2503"><span class="linenos">2503</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2504"><a href="#Select-2504"><span class="linenos">2504</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2505"><a href="#Select-2505"><span class="linenos">2505</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2506"><a href="#Select-2506"><span class="linenos">2506</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-2507"><a href="#Select-2507"><span class="linenos">2507</span></a><span class="sd"> Set the ORDER BY expression.</span>
</span><span id="Select-2508"><a href="#Select-2508"><span class="linenos">2508</span></a>
</span><span id="Select-2509"><a href="#Select-2509"><span class="linenos">2509</span></a><span class="sd"> Example:</span>
</span><span id="Select-2510"><a href="#Select-2510"><span class="linenos">2510</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).order_by(&quot;x DESC&quot;).sql()</span>
</span><span id="Select-2511"><a href="#Select-2511"><span class="linenos">2511</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
</span><span id="Select-2512"><a href="#Select-2512"><span class="linenos">2512</span></a>
</span><span id="Select-2513"><a href="#Select-2513"><span class="linenos">2513</span></a><span class="sd"> Args:</span>
</span><span id="Select-2514"><a href="#Select-2514"><span class="linenos">2514</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select-2515"><a href="#Select-2515"><span class="linenos">2515</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
</span><span id="Select-2516"><a href="#Select-2516"><span class="linenos">2516</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
</span><span id="Select-2517"><a href="#Select-2517"><span class="linenos">2517</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select-2518"><a href="#Select-2518"><span class="linenos">2518</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
</span><span id="Select-2519"><a href="#Select-2519"><span class="linenos">2519</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select-2520"><a href="#Select-2520"><span class="linenos">2520</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-2521"><a href="#Select-2521"><span class="linenos">2521</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2522"><a href="#Select-2522"><span class="linenos">2522</span></a>
</span><span id="Select-2523"><a href="#Select-2523"><span class="linenos">2523</span></a><span class="sd"> Returns:</span>
</span><span id="Select-2524"><a href="#Select-2524"><span class="linenos">2524</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select-2525"><a href="#Select-2525"><span class="linenos">2525</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2526"><a href="#Select-2526"><span class="linenos">2526</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="Select-2527"><a href="#Select-2527"><span class="linenos">2527</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select-2528"><a href="#Select-2528"><span class="linenos">2528</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2529"><a href="#Select-2529"><span class="linenos">2529</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;order&quot;</span><span class="p">,</span>
</span><span id="Select-2530"><a href="#Select-2530"><span class="linenos">2530</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select-2531"><a href="#Select-2531"><span class="linenos">2531</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2532"><a href="#Select-2532"><span class="linenos">2532</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;ORDER BY&quot;</span><span class="p">,</span>
</span><span id="Select-2533"><a href="#Select-2533"><span class="linenos">2533</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
</span><span id="Select-2534"><a href="#Select-2534"><span class="linenos">2534</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2535"><a href="#Select-2535"><span class="linenos">2535</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2536"><a href="#Select-2536"><span class="linenos">2536</span></a> <span class="p">)</span>
</span><span id="Select-2537"><a href="#Select-2537"><span class="linenos">2537</span></a>
</span><span id="Select-2538"><a href="#Select-2538"><span class="linenos">2538</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
</span><span id="Select-2539"><a href="#Select-2539"><span class="linenos">2539</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2540"><a href="#Select-2540"><span class="linenos">2540</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select-2541"><a href="#Select-2541"><span class="linenos">2541</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2542"><a href="#Select-2542"><span class="linenos">2542</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2543"><a href="#Select-2543"><span class="linenos">2543</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2544"><a href="#Select-2544"><span class="linenos">2544</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2545"><a href="#Select-2545"><span class="linenos">2545</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2546"><a href="#Select-2546"><span class="linenos">2546</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-2547"><a href="#Select-2547"><span class="linenos">2547</span></a><span class="sd"> Set the SORT BY expression.</span>
</span><span id="Select-2548"><a href="#Select-2548"><span class="linenos">2548</span></a>
</span><span id="Select-2549"><a href="#Select-2549"><span class="linenos">2549</span></a><span class="sd"> Example:</span>
</span><span id="Select-2550"><a href="#Select-2550"><span class="linenos">2550</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
</span><span id="Select-2551"><a href="#Select-2551"><span class="linenos">2551</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
</span><span id="Select-2552"><a href="#Select-2552"><span class="linenos">2552</span></a>
</span><span id="Select-2553"><a href="#Select-2553"><span class="linenos">2553</span></a><span class="sd"> Args:</span>
</span><span id="Select-2554"><a href="#Select-2554"><span class="linenos">2554</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select-2555"><a href="#Select-2555"><span class="linenos">2555</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
</span><span id="Select-2556"><a href="#Select-2556"><span class="linenos">2556</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
</span><span id="Select-2557"><a href="#Select-2557"><span class="linenos">2557</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select-2558"><a href="#Select-2558"><span class="linenos">2558</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
</span><span id="Select-2559"><a href="#Select-2559"><span class="linenos">2559</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select-2560"><a href="#Select-2560"><span class="linenos">2560</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-2561"><a href="#Select-2561"><span class="linenos">2561</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2562"><a href="#Select-2562"><span class="linenos">2562</span></a>
</span><span id="Select-2563"><a href="#Select-2563"><span class="linenos">2563</span></a><span class="sd"> Returns:</span>
</span><span id="Select-2564"><a href="#Select-2564"><span class="linenos">2564</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select-2565"><a href="#Select-2565"><span class="linenos">2565</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2566"><a href="#Select-2566"><span class="linenos">2566</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="Select-2567"><a href="#Select-2567"><span class="linenos">2567</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select-2568"><a href="#Select-2568"><span class="linenos">2568</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2569"><a href="#Select-2569"><span class="linenos">2569</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;sort&quot;</span><span class="p">,</span>
</span><span id="Select-2570"><a href="#Select-2570"><span class="linenos">2570</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select-2571"><a href="#Select-2571"><span class="linenos">2571</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2572"><a href="#Select-2572"><span class="linenos">2572</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;SORT BY&quot;</span><span class="p">,</span>
</span><span id="Select-2573"><a href="#Select-2573"><span class="linenos">2573</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
</span><span id="Select-2574"><a href="#Select-2574"><span class="linenos">2574</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2575"><a href="#Select-2575"><span class="linenos">2575</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2576"><a href="#Select-2576"><span class="linenos">2576</span></a> <span class="p">)</span>
</span><span id="Select-2577"><a href="#Select-2577"><span class="linenos">2577</span></a>
</span><span id="Select-2578"><a href="#Select-2578"><span class="linenos">2578</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
</span><span id="Select-2579"><a href="#Select-2579"><span class="linenos">2579</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2580"><a href="#Select-2580"><span class="linenos">2580</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select-2581"><a href="#Select-2581"><span class="linenos">2581</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2582"><a href="#Select-2582"><span class="linenos">2582</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2583"><a href="#Select-2583"><span class="linenos">2583</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2584"><a href="#Select-2584"><span class="linenos">2584</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2585"><a href="#Select-2585"><span class="linenos">2585</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2586"><a href="#Select-2586"><span class="linenos">2586</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-2587"><a href="#Select-2587"><span class="linenos">2587</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
</span><span id="Select-2588"><a href="#Select-2588"><span class="linenos">2588</span></a>
</span><span id="Select-2589"><a href="#Select-2589"><span class="linenos">2589</span></a><span class="sd"> Example:</span>
</span><span id="Select-2590"><a href="#Select-2590"><span class="linenos">2590</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
</span><span id="Select-2591"><a href="#Select-2591"><span class="linenos">2591</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
</span><span id="Select-2592"><a href="#Select-2592"><span class="linenos">2592</span></a>
</span><span id="Select-2593"><a href="#Select-2593"><span class="linenos">2593</span></a><span class="sd"> Args:</span>
</span><span id="Select-2594"><a href="#Select-2594"><span class="linenos">2594</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select-2595"><a href="#Select-2595"><span class="linenos">2595</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
</span><span id="Select-2596"><a href="#Select-2596"><span class="linenos">2596</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
</span><span id="Select-2597"><a href="#Select-2597"><span class="linenos">2597</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select-2598"><a href="#Select-2598"><span class="linenos">2598</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
</span><span id="Select-2599"><a href="#Select-2599"><span class="linenos">2599</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select-2600"><a href="#Select-2600"><span class="linenos">2600</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-2601"><a href="#Select-2601"><span class="linenos">2601</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2602"><a href="#Select-2602"><span class="linenos">2602</span></a>
</span><span id="Select-2603"><a href="#Select-2603"><span class="linenos">2603</span></a><span class="sd"> Returns:</span>
</span><span id="Select-2604"><a href="#Select-2604"><span class="linenos">2604</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select-2605"><a href="#Select-2605"><span class="linenos">2605</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2606"><a href="#Select-2606"><span class="linenos">2606</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="Select-2607"><a href="#Select-2607"><span class="linenos">2607</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select-2608"><a href="#Select-2608"><span class="linenos">2608</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2609"><a href="#Select-2609"><span class="linenos">2609</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;cluster&quot;</span><span class="p">,</span>
</span><span id="Select-2610"><a href="#Select-2610"><span class="linenos">2610</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select-2611"><a href="#Select-2611"><span class="linenos">2611</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2612"><a href="#Select-2612"><span class="linenos">2612</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;CLUSTER BY&quot;</span><span class="p">,</span>
</span><span id="Select-2613"><a href="#Select-2613"><span class="linenos">2613</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
</span><span id="Select-2614"><a href="#Select-2614"><span class="linenos">2614</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2615"><a href="#Select-2615"><span class="linenos">2615</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2616"><a href="#Select-2616"><span class="linenos">2616</span></a> <span class="p">)</span>
</span><span id="Select-2617"><a href="#Select-2617"><span class="linenos">2617</span></a>
</span><span id="Select-2618"><a href="#Select-2618"><span class="linenos">2618</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
</span><span id="Select-2619"><a href="#Select-2619"><span class="linenos">2619</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Select-2620"><a href="#Select-2620"><span class="linenos">2620</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2621"><a href="#Select-2621"><span class="linenos">2621</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-2622"><a href="#Select-2622"><span class="linenos">2622</span></a><span class="sd"> Set the LIMIT expression.</span>
</span><span id="Select-2623"><a href="#Select-2623"><span class="linenos">2623</span></a>
</span><span id="Select-2624"><a href="#Select-2624"><span class="linenos">2624</span></a><span class="sd"> Example:</span>
</span><span id="Select-2625"><a href="#Select-2625"><span class="linenos">2625</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).limit(10).sql()</span>
</span><span id="Select-2626"><a href="#Select-2626"><span class="linenos">2626</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
</span><span id="Select-2627"><a href="#Select-2627"><span class="linenos">2627</span></a>
</span><span id="Select-2628"><a href="#Select-2628"><span class="linenos">2628</span></a><span class="sd"> Args:</span>
</span><span id="Select-2629"><a href="#Select-2629"><span class="linenos">2629</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="Select-2630"><a href="#Select-2630"><span class="linenos">2630</span></a><span class="sd"> This can also be an integer.</span>
</span><span id="Select-2631"><a href="#Select-2631"><span class="linenos">2631</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
</span><span id="Select-2632"><a href="#Select-2632"><span class="linenos">2632</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
</span><span id="Select-2633"><a href="#Select-2633"><span class="linenos">2633</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select-2634"><a href="#Select-2634"><span class="linenos">2634</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-2635"><a href="#Select-2635"><span class="linenos">2635</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2636"><a href="#Select-2636"><span class="linenos">2636</span></a>
</span><span id="Select-2637"><a href="#Select-2637"><span class="linenos">2637</span></a><span class="sd"> Returns:</span>
</span><span id="Select-2638"><a href="#Select-2638"><span class="linenos">2638</span></a><span class="sd"> Select: the modified expression.</span>
</span><span id="Select-2639"><a href="#Select-2639"><span class="linenos">2639</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2640"><a href="#Select-2640"><span class="linenos">2640</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="Select-2641"><a href="#Select-2641"><span class="linenos">2641</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="Select-2642"><a href="#Select-2642"><span class="linenos">2642</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2643"><a href="#Select-2643"><span class="linenos">2643</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;limit&quot;</span><span class="p">,</span>
</span><span id="Select-2644"><a href="#Select-2644"><span class="linenos">2644</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
</span><span id="Select-2645"><a href="#Select-2645"><span class="linenos">2645</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LIMIT&quot;</span><span class="p">,</span>
</span><span id="Select-2646"><a href="#Select-2646"><span class="linenos">2646</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2647"><a href="#Select-2647"><span class="linenos">2647</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2648"><a href="#Select-2648"><span class="linenos">2648</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2649"><a href="#Select-2649"><span class="linenos">2649</span></a> <span class="p">)</span>
</span><span id="Select-2650"><a href="#Select-2650"><span class="linenos">2650</span></a>
</span><span id="Select-2651"><a href="#Select-2651"><span class="linenos">2651</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span>
</span><span id="Select-2652"><a href="#Select-2652"><span class="linenos">2652</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Select-2653"><a href="#Select-2653"><span class="linenos">2653</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2654"><a href="#Select-2654"><span class="linenos">2654</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-2655"><a href="#Select-2655"><span class="linenos">2655</span></a><span class="sd"> Set the OFFSET expression.</span>
</span><span id="Select-2656"><a href="#Select-2656"><span class="linenos">2656</span></a>
</span><span id="Select-2657"><a href="#Select-2657"><span class="linenos">2657</span></a><span class="sd"> Example:</span>
</span><span id="Select-2658"><a href="#Select-2658"><span class="linenos">2658</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).offset(10).sql()</span>
</span><span id="Select-2659"><a href="#Select-2659"><span class="linenos">2659</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
</span><span id="Select-2660"><a href="#Select-2660"><span class="linenos">2660</span></a>
</span><span id="Select-2661"><a href="#Select-2661"><span class="linenos">2661</span></a><span class="sd"> Args:</span>
</span><span id="Select-2662"><a href="#Select-2662"><span class="linenos">2662</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="Select-2663"><a href="#Select-2663"><span class="linenos">2663</span></a><span class="sd"> This can also be an integer.</span>
</span><span id="Select-2664"><a href="#Select-2664"><span class="linenos">2664</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
</span><span id="Select-2665"><a href="#Select-2665"><span class="linenos">2665</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
</span><span id="Select-2666"><a href="#Select-2666"><span class="linenos">2666</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select-2667"><a href="#Select-2667"><span class="linenos">2667</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-2668"><a href="#Select-2668"><span class="linenos">2668</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2669"><a href="#Select-2669"><span class="linenos">2669</span></a>
</span><span id="Select-2670"><a href="#Select-2670"><span class="linenos">2670</span></a><span class="sd"> Returns:</span>
</span><span id="Select-2671"><a href="#Select-2671"><span class="linenos">2671</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select-2672"><a href="#Select-2672"><span class="linenos">2672</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2673"><a href="#Select-2673"><span class="linenos">2673</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="Select-2674"><a href="#Select-2674"><span class="linenos">2674</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="Select-2675"><a href="#Select-2675"><span class="linenos">2675</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2676"><a href="#Select-2676"><span class="linenos">2676</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;offset&quot;</span><span class="p">,</span>
</span><span id="Select-2677"><a href="#Select-2677"><span class="linenos">2677</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
</span><span id="Select-2678"><a href="#Select-2678"><span class="linenos">2678</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;OFFSET&quot;</span><span class="p">,</span>
</span><span id="Select-2679"><a href="#Select-2679"><span class="linenos">2679</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2680"><a href="#Select-2680"><span class="linenos">2680</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2681"><a href="#Select-2681"><span class="linenos">2681</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2682"><a href="#Select-2682"><span class="linenos">2682</span></a> <span class="p">)</span>
</span><span id="Select-2683"><a href="#Select-2683"><span class="linenos">2683</span></a>
</span><span id="Select-2684"><a href="#Select-2684"><span class="linenos">2684</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
</span><span id="Select-2685"><a href="#Select-2685"><span class="linenos">2685</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2686"><a href="#Select-2686"><span class="linenos">2686</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select-2687"><a href="#Select-2687"><span class="linenos">2687</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2688"><a href="#Select-2688"><span class="linenos">2688</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2689"><a href="#Select-2689"><span class="linenos">2689</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2690"><a href="#Select-2690"><span class="linenos">2690</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2691"><a href="#Select-2691"><span class="linenos">2691</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2692"><a href="#Select-2692"><span class="linenos">2692</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-2693"><a href="#Select-2693"><span class="linenos">2693</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
</span><span id="Select-2694"><a href="#Select-2694"><span class="linenos">2694</span></a>
</span><span id="Select-2695"><a href="#Select-2695"><span class="linenos">2695</span></a><span class="sd"> Example:</span>
</span><span id="Select-2696"><a href="#Select-2696"><span class="linenos">2696</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
</span><span id="Select-2697"><a href="#Select-2697"><span class="linenos">2697</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
</span><span id="Select-2698"><a href="#Select-2698"><span class="linenos">2698</span></a>
</span><span id="Select-2699"><a href="#Select-2699"><span class="linenos">2699</span></a><span class="sd"> Args:</span>
</span><span id="Select-2700"><a href="#Select-2700"><span class="linenos">2700</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select-2701"><a href="#Select-2701"><span class="linenos">2701</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select-2702"><a href="#Select-2702"><span class="linenos">2702</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select-2703"><a href="#Select-2703"><span class="linenos">2703</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="Select-2704"><a href="#Select-2704"><span class="linenos">2704</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Select-2705"><a href="#Select-2705"><span class="linenos">2705</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-2706"><a href="#Select-2706"><span class="linenos">2706</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2707"><a href="#Select-2707"><span class="linenos">2707</span></a>
</span><span id="Select-2708"><a href="#Select-2708"><span class="linenos">2708</span></a><span class="sd"> Returns:</span>
</span><span id="Select-2709"><a href="#Select-2709"><span class="linenos">2709</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select-2710"><a href="#Select-2710"><span class="linenos">2710</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2711"><a href="#Select-2711"><span class="linenos">2711</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="Select-2712"><a href="#Select-2712"><span class="linenos">2712</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select-2713"><a href="#Select-2713"><span class="linenos">2713</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2714"><a href="#Select-2714"><span class="linenos">2714</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
</span><span id="Select-2715"><a href="#Select-2715"><span class="linenos">2715</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select-2716"><a href="#Select-2716"><span class="linenos">2716</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2717"><a href="#Select-2717"><span class="linenos">2717</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2718"><a href="#Select-2718"><span class="linenos">2718</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2719"><a href="#Select-2719"><span class="linenos">2719</span></a> <span class="p">)</span>
</span><span id="Select-2720"><a href="#Select-2720"><span class="linenos">2720</span></a>
</span><span id="Select-2721"><a href="#Select-2721"><span class="linenos">2721</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
</span><span id="Select-2722"><a href="#Select-2722"><span class="linenos">2722</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2723"><a href="#Select-2723"><span class="linenos">2723</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select-2724"><a href="#Select-2724"><span class="linenos">2724</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2725"><a href="#Select-2725"><span class="linenos">2725</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2726"><a href="#Select-2726"><span class="linenos">2726</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2727"><a href="#Select-2727"><span class="linenos">2727</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2728"><a href="#Select-2728"><span class="linenos">2728</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2729"><a href="#Select-2729"><span class="linenos">2729</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-2730"><a href="#Select-2730"><span class="linenos">2730</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
</span><span id="Select-2731"><a href="#Select-2731"><span class="linenos">2731</span></a>
</span><span id="Select-2732"><a href="#Select-2732"><span class="linenos">2732</span></a><span class="sd"> Example:</span>
</span><span id="Select-2733"><a href="#Select-2733"><span class="linenos">2733</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).lateral(&quot;OUTER explode(y) tbl2 AS z&quot;).from_(&quot;tbl&quot;).sql()</span>
</span><span id="Select-2734"><a href="#Select-2734"><span class="linenos">2734</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
</span><span id="Select-2735"><a href="#Select-2735"><span class="linenos">2735</span></a>
</span><span id="Select-2736"><a href="#Select-2736"><span class="linenos">2736</span></a><span class="sd"> Args:</span>
</span><span id="Select-2737"><a href="#Select-2737"><span class="linenos">2737</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select-2738"><a href="#Select-2738"><span class="linenos">2738</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select-2739"><a href="#Select-2739"><span class="linenos">2739</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select-2740"><a href="#Select-2740"><span class="linenos">2740</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="Select-2741"><a href="#Select-2741"><span class="linenos">2741</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Select-2742"><a href="#Select-2742"><span class="linenos">2742</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-2743"><a href="#Select-2743"><span class="linenos">2743</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2744"><a href="#Select-2744"><span class="linenos">2744</span></a>
</span><span id="Select-2745"><a href="#Select-2745"><span class="linenos">2745</span></a><span class="sd"> Returns:</span>
</span><span id="Select-2746"><a href="#Select-2746"><span class="linenos">2746</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select-2747"><a href="#Select-2747"><span class="linenos">2747</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2748"><a href="#Select-2748"><span class="linenos">2748</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="Select-2749"><a href="#Select-2749"><span class="linenos">2749</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select-2750"><a href="#Select-2750"><span class="linenos">2750</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2751"><a href="#Select-2751"><span class="linenos">2751</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;laterals&quot;</span><span class="p">,</span>
</span><span id="Select-2752"><a href="#Select-2752"><span class="linenos">2752</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select-2753"><a href="#Select-2753"><span class="linenos">2753</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
</span><span id="Select-2754"><a href="#Select-2754"><span class="linenos">2754</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LATERAL VIEW&quot;</span><span class="p">,</span>
</span><span id="Select-2755"><a href="#Select-2755"><span class="linenos">2755</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2756"><a href="#Select-2756"><span class="linenos">2756</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2757"><a href="#Select-2757"><span class="linenos">2757</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2758"><a href="#Select-2758"><span class="linenos">2758</span></a> <span class="p">)</span>
</span><span id="Select-2759"><a href="#Select-2759"><span class="linenos">2759</span></a>
</span><span id="Select-2760"><a href="#Select-2760"><span class="linenos">2760</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
</span><span id="Select-2761"><a href="#Select-2761"><span class="linenos">2761</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2762"><a href="#Select-2762"><span class="linenos">2762</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Select-2763"><a href="#Select-2763"><span class="linenos">2763</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2764"><a href="#Select-2764"><span class="linenos">2764</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2765"><a href="#Select-2765"><span class="linenos">2765</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2766"><a href="#Select-2766"><span class="linenos">2766</span></a> <span class="n">join_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2767"><a href="#Select-2767"><span class="linenos">2767</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2768"><a href="#Select-2768"><span class="linenos">2768</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2769"><a href="#Select-2769"><span class="linenos">2769</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2770"><a href="#Select-2770"><span class="linenos">2770</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2771"><a href="#Select-2771"><span class="linenos">2771</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2772"><a href="#Select-2772"><span class="linenos">2772</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-2773"><a href="#Select-2773"><span class="linenos">2773</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
</span><span id="Select-2774"><a href="#Select-2774"><span class="linenos">2774</span></a>
</span><span id="Select-2775"><a href="#Select-2775"><span class="linenos">2775</span></a><span class="sd"> Example:</span>
</span><span id="Select-2776"><a href="#Select-2776"><span class="linenos">2776</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;).sql()</span>
</span><span id="Select-2777"><a href="#Select-2777"><span class="linenos">2777</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
</span><span id="Select-2778"><a href="#Select-2778"><span class="linenos">2778</span></a>
</span><span id="Select-2779"><a href="#Select-2779"><span class="linenos">2779</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;1&quot;).from_(&quot;a&quot;).join(&quot;b&quot;, using=[&quot;x&quot;, &quot;y&quot;, &quot;z&quot;]).sql()</span>
</span><span id="Select-2780"><a href="#Select-2780"><span class="linenos">2780</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
</span><span id="Select-2781"><a href="#Select-2781"><span class="linenos">2781</span></a>
</span><span id="Select-2782"><a href="#Select-2782"><span class="linenos">2782</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
</span><span id="Select-2783"><a href="#Select-2783"><span class="linenos">2783</span></a>
</span><span id="Select-2784"><a href="#Select-2784"><span class="linenos">2784</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;, join_type=&quot;left outer&quot;).sql()</span>
</span><span id="Select-2785"><a href="#Select-2785"><span class="linenos">2785</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
</span><span id="Select-2786"><a href="#Select-2786"><span class="linenos">2786</span></a>
</span><span id="Select-2787"><a href="#Select-2787"><span class="linenos">2787</span></a><span class="sd"> Args:</span>
</span><span id="Select-2788"><a href="#Select-2788"><span class="linenos">2788</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="Select-2789"><a href="#Select-2789"><span class="linenos">2789</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select-2790"><a href="#Select-2790"><span class="linenos">2790</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
</span><span id="Select-2791"><a href="#Select-2791"><span class="linenos">2791</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select-2792"><a href="#Select-2792"><span class="linenos">2792</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
</span><span id="Select-2793"><a href="#Select-2793"><span class="linenos">2793</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select-2794"><a href="#Select-2794"><span class="linenos">2794</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select-2795"><a href="#Select-2795"><span class="linenos">2795</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="Select-2796"><a href="#Select-2796"><span class="linenos">2796</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
</span><span id="Select-2797"><a href="#Select-2797"><span class="linenos">2797</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
</span><span id="Select-2798"><a href="#Select-2798"><span class="linenos">2798</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Select-2799"><a href="#Select-2799"><span class="linenos">2799</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-2800"><a href="#Select-2800"><span class="linenos">2800</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2801"><a href="#Select-2801"><span class="linenos">2801</span></a>
</span><span id="Select-2802"><a href="#Select-2802"><span class="linenos">2802</span></a><span class="sd"> Returns:</span>
</span><span id="Select-2803"><a href="#Select-2803"><span class="linenos">2803</span></a><span class="sd"> Select: the modified expression.</span>
</span><span id="Select-2804"><a href="#Select-2804"><span class="linenos">2804</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2805"><a href="#Select-2805"><span class="linenos">2805</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
</span><span id="Select-2806"><a href="#Select-2806"><span class="linenos">2806</span></a>
</span><span id="Select-2807"><a href="#Select-2807"><span class="linenos">2807</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="Select-2808"><a href="#Select-2808"><span class="linenos">2808</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;JOIN&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="Select-2809"><a href="#Select-2809"><span class="linenos">2809</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
</span><span id="Select-2810"><a href="#Select-2810"><span class="linenos">2810</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="Select-2811"><a href="#Select-2811"><span class="linenos">2811</span></a>
</span><span id="Select-2812"><a href="#Select-2812"><span class="linenos">2812</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
</span><span id="Select-2813"><a href="#Select-2813"><span class="linenos">2813</span></a>
</span><span id="Select-2814"><a href="#Select-2814"><span class="linenos">2814</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span>
</span><span id="Select-2815"><a href="#Select-2815"><span class="linenos">2815</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span>
</span><span id="Select-2816"><a href="#Select-2816"><span class="linenos">2816</span></a>
</span><span id="Select-2817"><a href="#Select-2817"><span class="linenos">2817</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
</span><span id="Select-2818"><a href="#Select-2818"><span class="linenos">2818</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
</span><span id="Select-2819"><a href="#Select-2819"><span class="linenos">2819</span></a> <span class="n">side</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
</span><span id="Select-2820"><a href="#Select-2820"><span class="linenos">2820</span></a> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
</span><span id="Select-2821"><a href="#Select-2821"><span class="linenos">2821</span></a>
</span><span id="Select-2822"><a href="#Select-2822"><span class="linenos">2822</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="Select-2823"><a href="#Select-2823"><span class="linenos">2823</span></a>
</span><span id="Select-2824"><a href="#Select-2824"><span class="linenos">2824</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
</span><span id="Select-2825"><a href="#Select-2825"><span class="linenos">2825</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
</span><span id="Select-2826"><a href="#Select-2826"><span class="linenos">2826</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
</span><span id="Select-2827"><a href="#Select-2827"><span class="linenos">2827</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
</span><span id="Select-2828"><a href="#Select-2828"><span class="linenos">2828</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
</span><span id="Select-2829"><a href="#Select-2829"><span class="linenos">2829</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
</span><span id="Select-2830"><a href="#Select-2830"><span class="linenos">2830</span></a>
</span><span id="Select-2831"><a href="#Select-2831"><span class="linenos">2831</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
</span><span id="Select-2832"><a href="#Select-2832"><span class="linenos">2832</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="Select-2833"><a href="#Select-2833"><span class="linenos">2833</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;on&quot;</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span>
</span><span id="Select-2834"><a href="#Select-2834"><span class="linenos">2834</span></a>
</span><span id="Select-2835"><a href="#Select-2835"><span class="linenos">2835</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
</span><span id="Select-2836"><a href="#Select-2836"><span class="linenos">2836</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="Select-2837"><a href="#Select-2837"><span class="linenos">2837</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
</span><span id="Select-2838"><a href="#Select-2838"><span class="linenos">2838</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
</span><span id="Select-2839"><a href="#Select-2839"><span class="linenos">2839</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
</span><span id="Select-2840"><a href="#Select-2840"><span class="linenos">2840</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select-2841"><a href="#Select-2841"><span class="linenos">2841</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2842"><a href="#Select-2842"><span class="linenos">2842</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2843"><a href="#Select-2843"><span class="linenos">2843</span></a> <span class="p">)</span>
</span><span id="Select-2844"><a href="#Select-2844"><span class="linenos">2844</span></a>
</span><span id="Select-2845"><a href="#Select-2845"><span class="linenos">2845</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
</span><span id="Select-2846"><a href="#Select-2846"><span class="linenos">2846</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span>
</span><span id="Select-2847"><a href="#Select-2847"><span class="linenos">2847</span></a>
</span><span id="Select-2848"><a href="#Select-2848"><span class="linenos">2848</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="Select-2849"><a href="#Select-2849"><span class="linenos">2849</span></a> <span class="n">join</span><span class="p">,</span>
</span><span id="Select-2850"><a href="#Select-2850"><span class="linenos">2850</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2851"><a href="#Select-2851"><span class="linenos">2851</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;joins&quot;</span><span class="p">,</span>
</span><span id="Select-2852"><a href="#Select-2852"><span class="linenos">2852</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select-2853"><a href="#Select-2853"><span class="linenos">2853</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2854"><a href="#Select-2854"><span class="linenos">2854</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2855"><a href="#Select-2855"><span class="linenos">2855</span></a> <span class="p">)</span>
</span><span id="Select-2856"><a href="#Select-2856"><span class="linenos">2856</span></a>
</span><span id="Select-2857"><a href="#Select-2857"><span class="linenos">2857</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
</span><span id="Select-2858"><a href="#Select-2858"><span class="linenos">2858</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2859"><a href="#Select-2859"><span class="linenos">2859</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select-2860"><a href="#Select-2860"><span class="linenos">2860</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2861"><a href="#Select-2861"><span class="linenos">2861</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2862"><a href="#Select-2862"><span class="linenos">2862</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2863"><a href="#Select-2863"><span class="linenos">2863</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2864"><a href="#Select-2864"><span class="linenos">2864</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2865"><a href="#Select-2865"><span class="linenos">2865</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-2866"><a href="#Select-2866"><span class="linenos">2866</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
</span><span id="Select-2867"><a href="#Select-2867"><span class="linenos">2867</span></a>
</span><span id="Select-2868"><a href="#Select-2868"><span class="linenos">2868</span></a><span class="sd"> Example:</span>
</span><span id="Select-2869"><a href="#Select-2869"><span class="linenos">2869</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
</span><span id="Select-2870"><a href="#Select-2870"><span class="linenos">2870</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
</span><span id="Select-2871"><a href="#Select-2871"><span class="linenos">2871</span></a>
</span><span id="Select-2872"><a href="#Select-2872"><span class="linenos">2872</span></a><span class="sd"> Args:</span>
</span><span id="Select-2873"><a href="#Select-2873"><span class="linenos">2873</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select-2874"><a href="#Select-2874"><span class="linenos">2874</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select-2875"><a href="#Select-2875"><span class="linenos">2875</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
</span><span id="Select-2876"><a href="#Select-2876"><span class="linenos">2876</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
</span><span id="Select-2877"><a href="#Select-2877"><span class="linenos">2877</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="Select-2878"><a href="#Select-2878"><span class="linenos">2878</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Select-2879"><a href="#Select-2879"><span class="linenos">2879</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-2880"><a href="#Select-2880"><span class="linenos">2880</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2881"><a href="#Select-2881"><span class="linenos">2881</span></a>
</span><span id="Select-2882"><a href="#Select-2882"><span class="linenos">2882</span></a><span class="sd"> Returns:</span>
</span><span id="Select-2883"><a href="#Select-2883"><span class="linenos">2883</span></a><span class="sd"> Select: the modified expression.</span>
</span><span id="Select-2884"><a href="#Select-2884"><span class="linenos">2884</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2885"><a href="#Select-2885"><span class="linenos">2885</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="Select-2886"><a href="#Select-2886"><span class="linenos">2886</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select-2887"><a href="#Select-2887"><span class="linenos">2887</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2888"><a href="#Select-2888"><span class="linenos">2888</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
</span><span id="Select-2889"><a href="#Select-2889"><span class="linenos">2889</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select-2890"><a href="#Select-2890"><span class="linenos">2890</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
</span><span id="Select-2891"><a href="#Select-2891"><span class="linenos">2891</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2892"><a href="#Select-2892"><span class="linenos">2892</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2893"><a href="#Select-2893"><span class="linenos">2893</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2894"><a href="#Select-2894"><span class="linenos">2894</span></a> <span class="p">)</span>
</span><span id="Select-2895"><a href="#Select-2895"><span class="linenos">2895</span></a>
</span><span id="Select-2896"><a href="#Select-2896"><span class="linenos">2896</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
</span><span id="Select-2897"><a href="#Select-2897"><span class="linenos">2897</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2898"><a href="#Select-2898"><span class="linenos">2898</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select-2899"><a href="#Select-2899"><span class="linenos">2899</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2900"><a href="#Select-2900"><span class="linenos">2900</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2901"><a href="#Select-2901"><span class="linenos">2901</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2902"><a href="#Select-2902"><span class="linenos">2902</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2903"><a href="#Select-2903"><span class="linenos">2903</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2904"><a href="#Select-2904"><span class="linenos">2904</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-2905"><a href="#Select-2905"><span class="linenos">2905</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
</span><span id="Select-2906"><a href="#Select-2906"><span class="linenos">2906</span></a>
</span><span id="Select-2907"><a href="#Select-2907"><span class="linenos">2907</span></a><span class="sd"> Example:</span>
</span><span id="Select-2908"><a href="#Select-2908"><span class="linenos">2908</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;COUNT(y)&quot;).from_(&quot;tbl&quot;).group_by(&quot;x&quot;).having(&quot;COUNT(y) &gt; 3&quot;).sql()</span>
</span><span id="Select-2909"><a href="#Select-2909"><span class="linenos">2909</span></a><span class="sd"> &#39;SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) &gt; 3&#39;</span>
</span><span id="Select-2910"><a href="#Select-2910"><span class="linenos">2910</span></a>
</span><span id="Select-2911"><a href="#Select-2911"><span class="linenos">2911</span></a><span class="sd"> Args:</span>
</span><span id="Select-2912"><a href="#Select-2912"><span class="linenos">2912</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select-2913"><a href="#Select-2913"><span class="linenos">2913</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select-2914"><a href="#Select-2914"><span class="linenos">2914</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
</span><span id="Select-2915"><a href="#Select-2915"><span class="linenos">2915</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
</span><span id="Select-2916"><a href="#Select-2916"><span class="linenos">2916</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="Select-2917"><a href="#Select-2917"><span class="linenos">2917</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Select-2918"><a href="#Select-2918"><span class="linenos">2918</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-2919"><a href="#Select-2919"><span class="linenos">2919</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select-2920"><a href="#Select-2920"><span class="linenos">2920</span></a>
</span><span id="Select-2921"><a href="#Select-2921"><span class="linenos">2921</span></a><span class="sd"> Returns:</span>
</span><span id="Select-2922"><a href="#Select-2922"><span class="linenos">2922</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select-2923"><a href="#Select-2923"><span class="linenos">2923</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2924"><a href="#Select-2924"><span class="linenos">2924</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="Select-2925"><a href="#Select-2925"><span class="linenos">2925</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select-2926"><a href="#Select-2926"><span class="linenos">2926</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2927"><a href="#Select-2927"><span class="linenos">2927</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;having&quot;</span><span class="p">,</span>
</span><span id="Select-2928"><a href="#Select-2928"><span class="linenos">2928</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select-2929"><a href="#Select-2929"><span class="linenos">2929</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
</span><span id="Select-2930"><a href="#Select-2930"><span class="linenos">2930</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2931"><a href="#Select-2931"><span class="linenos">2931</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2932"><a href="#Select-2932"><span class="linenos">2932</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2933"><a href="#Select-2933"><span class="linenos">2933</span></a> <span class="p">)</span>
</span><span id="Select-2934"><a href="#Select-2934"><span class="linenos">2934</span></a>
</span><span id="Select-2935"><a href="#Select-2935"><span class="linenos">2935</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
</span><span id="Select-2936"><a href="#Select-2936"><span class="linenos">2936</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2937"><a href="#Select-2937"><span class="linenos">2937</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select-2938"><a href="#Select-2938"><span class="linenos">2938</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2939"><a href="#Select-2939"><span class="linenos">2939</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2940"><a href="#Select-2940"><span class="linenos">2940</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2941"><a href="#Select-2941"><span class="linenos">2941</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2942"><a href="#Select-2942"><span class="linenos">2942</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2943"><a href="#Select-2943"><span class="linenos">2943</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="Select-2944"><a href="#Select-2944"><span class="linenos">2944</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select-2945"><a href="#Select-2945"><span class="linenos">2945</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2946"><a href="#Select-2946"><span class="linenos">2946</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;windows&quot;</span><span class="p">,</span>
</span><span id="Select-2947"><a href="#Select-2947"><span class="linenos">2947</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select-2948"><a href="#Select-2948"><span class="linenos">2948</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
</span><span id="Select-2949"><a href="#Select-2949"><span class="linenos">2949</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2950"><a href="#Select-2950"><span class="linenos">2950</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2951"><a href="#Select-2951"><span class="linenos">2951</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2952"><a href="#Select-2952"><span class="linenos">2952</span></a> <span class="p">)</span>
</span><span id="Select-2953"><a href="#Select-2953"><span class="linenos">2953</span></a>
</span><span id="Select-2954"><a href="#Select-2954"><span class="linenos">2954</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
</span><span id="Select-2955"><a href="#Select-2955"><span class="linenos">2955</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2956"><a href="#Select-2956"><span class="linenos">2956</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select-2957"><a href="#Select-2957"><span class="linenos">2957</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2958"><a href="#Select-2958"><span class="linenos">2958</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-2959"><a href="#Select-2959"><span class="linenos">2959</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-2960"><a href="#Select-2960"><span class="linenos">2960</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2961"><a href="#Select-2961"><span class="linenos">2961</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2962"><a href="#Select-2962"><span class="linenos">2962</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="Select-2963"><a href="#Select-2963"><span class="linenos">2963</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select-2964"><a href="#Select-2964"><span class="linenos">2964</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2965"><a href="#Select-2965"><span class="linenos">2965</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;qualify&quot;</span><span class="p">,</span>
</span><span id="Select-2966"><a href="#Select-2966"><span class="linenos">2966</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select-2967"><a href="#Select-2967"><span class="linenos">2967</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
</span><span id="Select-2968"><a href="#Select-2968"><span class="linenos">2968</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-2969"><a href="#Select-2969"><span class="linenos">2969</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select-2970"><a href="#Select-2970"><span class="linenos">2970</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-2971"><a href="#Select-2971"><span class="linenos">2971</span></a> <span class="p">)</span>
</span><span id="Select-2972"><a href="#Select-2972"><span class="linenos">2972</span></a>
</span><span id="Select-2973"><a href="#Select-2973"><span class="linenos">2973</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
</span><span id="Select-2974"><a href="#Select-2974"><span class="linenos">2974</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="Select-2975"><a href="#Select-2975"><span class="linenos">2975</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-2976"><a href="#Select-2976"><span class="linenos">2976</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-2977"><a href="#Select-2977"><span class="linenos">2977</span></a><span class="sd"> Set the OFFSET expression.</span>
</span><span id="Select-2978"><a href="#Select-2978"><span class="linenos">2978</span></a>
</span><span id="Select-2979"><a href="#Select-2979"><span class="linenos">2979</span></a><span class="sd"> Example:</span>
</span><span id="Select-2980"><a href="#Select-2980"><span class="linenos">2980</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
</span><span id="Select-2981"><a href="#Select-2981"><span class="linenos">2981</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
</span><span id="Select-2982"><a href="#Select-2982"><span class="linenos">2982</span></a>
</span><span id="Select-2983"><a href="#Select-2983"><span class="linenos">2983</span></a><span class="sd"> Args:</span>
</span><span id="Select-2984"><a href="#Select-2984"><span class="linenos">2984</span></a><span class="sd"> ons: the expressions to distinct on</span>
</span><span id="Select-2985"><a href="#Select-2985"><span class="linenos">2985</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
</span><span id="Select-2986"><a href="#Select-2986"><span class="linenos">2986</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-2987"><a href="#Select-2987"><span class="linenos">2987</span></a>
</span><span id="Select-2988"><a href="#Select-2988"><span class="linenos">2988</span></a><span class="sd"> Returns:</span>
</span><span id="Select-2989"><a href="#Select-2989"><span class="linenos">2989</span></a><span class="sd"> Select: the modified expression.</span>
</span><span id="Select-2990"><a href="#Select-2990"><span class="linenos">2990</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-2991"><a href="#Select-2991"><span class="linenos">2991</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="Select-2992"><a href="#Select-2992"><span class="linenos">2992</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
</span><span id="Select-2993"><a href="#Select-2993"><span class="linenos">2993</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="Select-2994"><a href="#Select-2994"><span class="linenos">2994</span></a> <span class="k">return</span> <span class="n">instance</span>
</span><span id="Select-2995"><a href="#Select-2995"><span class="linenos">2995</span></a>
</span><span id="Select-2996"><a href="#Select-2996"><span class="linenos">2996</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
</span><span id="Select-2997"><a href="#Select-2997"><span class="linenos">2997</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select-2998"><a href="#Select-2998"><span class="linenos">2998</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Select-2999"><a href="#Select-2999"><span class="linenos">2999</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-3000"><a href="#Select-3000"><span class="linenos">3000</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select-3001"><a href="#Select-3001"><span class="linenos">3001</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select-3002"><a href="#Select-3002"><span class="linenos">3002</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-3003"><a href="#Select-3003"><span class="linenos">3003</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
</span><span id="Select-3004"><a href="#Select-3004"><span class="linenos">3004</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-3005"><a href="#Select-3005"><span class="linenos">3005</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
</span><span id="Select-3006"><a href="#Select-3006"><span class="linenos">3006</span></a>
</span><span id="Select-3007"><a href="#Select-3007"><span class="linenos">3007</span></a><span class="sd"> Example:</span>
</span><span id="Select-3008"><a href="#Select-3008"><span class="linenos">3008</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).ctas(&quot;x&quot;).sql()</span>
</span><span id="Select-3009"><a href="#Select-3009"><span class="linenos">3009</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
</span><span id="Select-3010"><a href="#Select-3010"><span class="linenos">3010</span></a>
</span><span id="Select-3011"><a href="#Select-3011"><span class="linenos">3011</span></a><span class="sd"> Args:</span>
</span><span id="Select-3012"><a href="#Select-3012"><span class="linenos">3012</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
</span><span id="Select-3013"><a href="#Select-3013"><span class="linenos">3013</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select-3014"><a href="#Select-3014"><span class="linenos">3014</span></a><span class="sd"> properties: an optional mapping of table properties</span>
</span><span id="Select-3015"><a href="#Select-3015"><span class="linenos">3015</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
</span><span id="Select-3016"><a href="#Select-3016"><span class="linenos">3016</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-3017"><a href="#Select-3017"><span class="linenos">3017</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
</span><span id="Select-3018"><a href="#Select-3018"><span class="linenos">3018</span></a>
</span><span id="Select-3019"><a href="#Select-3019"><span class="linenos">3019</span></a><span class="sd"> Returns:</span>
</span><span id="Select-3020"><a href="#Select-3020"><span class="linenos">3020</span></a><span class="sd"> The new Create expression.</span>
</span><span id="Select-3021"><a href="#Select-3021"><span class="linenos">3021</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-3022"><a href="#Select-3022"><span class="linenos">3022</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="Select-3023"><a href="#Select-3023"><span class="linenos">3023</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
</span><span id="Select-3024"><a href="#Select-3024"><span class="linenos">3024</span></a> <span class="n">table</span><span class="p">,</span>
</span><span id="Select-3025"><a href="#Select-3025"><span class="linenos">3025</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
</span><span id="Select-3026"><a href="#Select-3026"><span class="linenos">3026</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select-3027"><a href="#Select-3027"><span class="linenos">3027</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select-3028"><a href="#Select-3028"><span class="linenos">3028</span></a> <span class="p">)</span>
</span><span id="Select-3029"><a href="#Select-3029"><span class="linenos">3029</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Select-3030"><a href="#Select-3030"><span class="linenos">3030</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
</span><span id="Select-3031"><a href="#Select-3031"><span class="linenos">3031</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span>
</span><span id="Select-3032"><a href="#Select-3032"><span class="linenos">3032</span></a>
</span><span id="Select-3033"><a href="#Select-3033"><span class="linenos">3033</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
</span><span id="Select-3034"><a href="#Select-3034"><span class="linenos">3034</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span>
</span><span id="Select-3035"><a href="#Select-3035"><span class="linenos">3035</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">&quot;table&quot;</span><span class="p">,</span>
</span><span id="Select-3036"><a href="#Select-3036"><span class="linenos">3036</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
</span><span id="Select-3037"><a href="#Select-3037"><span class="linenos">3037</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span>
</span><span id="Select-3038"><a href="#Select-3038"><span class="linenos">3038</span></a> <span class="p">)</span>
</span><span id="Select-3039"><a href="#Select-3039"><span class="linenos">3039</span></a>
</span><span id="Select-3040"><a href="#Select-3040"><span class="linenos">3040</span></a> <span class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select-3041"><a href="#Select-3041"><span class="linenos">3041</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select-3042"><a href="#Select-3042"><span class="linenos">3042</span></a><span class="sd"> Set the locking read mode for this expression.</span>
</span><span id="Select-3043"><a href="#Select-3043"><span class="linenos">3043</span></a>
</span><span id="Select-3044"><a href="#Select-3044"><span class="linenos">3044</span></a><span class="sd"> Examples:</span>
</span><span id="Select-3045"><a href="#Select-3045"><span class="linenos">3045</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock().sql(&quot;mysql&quot;)</span>
</span><span id="Select-3046"><a href="#Select-3046"><span class="linenos">3046</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
</span><span id="Select-3047"><a href="#Select-3047"><span class="linenos">3047</span></a>
</span><span id="Select-3048"><a href="#Select-3048"><span class="linenos">3048</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock(update=False).sql(&quot;mysql&quot;)</span>
</span><span id="Select-3049"><a href="#Select-3049"><span class="linenos">3049</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
</span><span id="Select-3050"><a href="#Select-3050"><span class="linenos">3050</span></a>
</span><span id="Select-3051"><a href="#Select-3051"><span class="linenos">3051</span></a><span class="sd"> Args:</span>
</span><span id="Select-3052"><a href="#Select-3052"><span class="linenos">3052</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span>
</span><span id="Select-3053"><a href="#Select-3053"><span class="linenos">3053</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select-3054"><a href="#Select-3054"><span class="linenos">3054</span></a>
</span><span id="Select-3055"><a href="#Select-3055"><span class="linenos">3055</span></a><span class="sd"> Returns:</span>
</span><span id="Select-3056"><a href="#Select-3056"><span class="linenos">3056</span></a><span class="sd"> The modified expression.</span>
</span><span id="Select-3057"><a href="#Select-3057"><span class="linenos">3057</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select-3058"><a href="#Select-3058"><span class="linenos">3058</span></a>
</span><span id="Select-3059"><a href="#Select-3059"><span class="linenos">3059</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="Select-3060"><a href="#Select-3060"><span class="linenos">3060</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
</span><span id="Select-3061"><a href="#Select-3061"><span class="linenos">3061</span></a>
</span><span id="Select-3062"><a href="#Select-3062"><span class="linenos">3062</span></a> <span class="k">return</span> <span class="n">inst</span>
</span><span id="Select-3063"><a href="#Select-3063"><span class="linenos">3063</span></a>
</span><span id="Select-3064"><a href="#Select-3064"><span class="linenos">3064</span></a> <span class="nd">@property</span>
</span><span id="Select-3065"><a href="#Select-3065"><span class="linenos">3065</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="Select-3066"><a href="#Select-3066"><span class="linenos">3066</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">]</span>
</span><span id="Select-3067"><a href="#Select-3067"><span class="linenos">3067</span></a>
</span><span id="Select-3068"><a href="#Select-3068"><span class="linenos">3068</span></a> <span class="nd">@property</span>
</span><span id="Select-3069"><a href="#Select-3069"><span class="linenos">3069</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="Select-3070"><a href="#Select-3070"><span class="linenos">3070</span></a> <span class="k">return</span> <span class="nb">any</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span>
</span><span id="Select-3071"><a href="#Select-3071"><span class="linenos">3071</span></a>
</span><span id="Select-3072"><a href="#Select-3072"><span class="linenos">3072</span></a> <span class="nd">@property</span>
</span><span id="Select-3073"><a href="#Select-3073"><span class="linenos">3073</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span>
</span><span id="Select-3074"><a href="#Select-3074"><span class="linenos">3074</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
<div id="Select.from_" class="classattr">
<input id="Select.from_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">from_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.from_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.from_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.from_-2422"><a href="#Select.from_-2422"><span class="linenos">2422</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span>
</span><span id="Select.from_-2423"><a href="#Select.from_-2423"><span class="linenos">2423</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Select.from_-2424"><a href="#Select.from_-2424"><span class="linenos">2424</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.from_-2425"><a href="#Select.from_-2425"><span class="linenos">2425</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.from_-2426"><a href="#Select.from_-2426"><span class="linenos">2426</span></a><span class="sd"> Set the FROM expression.</span>
</span><span id="Select.from_-2427"><a href="#Select.from_-2427"><span class="linenos">2427</span></a>
</span><span id="Select.from_-2428"><a href="#Select.from_-2428"><span class="linenos">2428</span></a><span class="sd"> Example:</span>
</span><span id="Select.from_-2429"><a href="#Select.from_-2429"><span class="linenos">2429</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sql()</span>
</span><span id="Select.from_-2430"><a href="#Select.from_-2430"><span class="linenos">2430</span></a><span class="sd"> &#39;SELECT x FROM tbl&#39;</span>
</span><span id="Select.from_-2431"><a href="#Select.from_-2431"><span class="linenos">2431</span></a>
</span><span id="Select.from_-2432"><a href="#Select.from_-2432"><span class="linenos">2432</span></a><span class="sd"> Args:</span>
</span><span id="Select.from_-2433"><a href="#Select.from_-2433"><span class="linenos">2433</span></a><span class="sd"> expression : the SQL code strings to parse.</span>
</span><span id="Select.from_-2434"><a href="#Select.from_-2434"><span class="linenos">2434</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span>
</span><span id="Select.from_-2435"><a href="#Select.from_-2435"><span class="linenos">2435</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span>
</span><span id="Select.from_-2436"><a href="#Select.from_-2436"><span class="linenos">2436</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select.from_-2437"><a href="#Select.from_-2437"><span class="linenos">2437</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.from_-2438"><a href="#Select.from_-2438"><span class="linenos">2438</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select.from_-2439"><a href="#Select.from_-2439"><span class="linenos">2439</span></a>
</span><span id="Select.from_-2440"><a href="#Select.from_-2440"><span class="linenos">2440</span></a><span class="sd"> Returns:</span>
</span><span id="Select.from_-2441"><a href="#Select.from_-2441"><span class="linenos">2441</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select.from_-2442"><a href="#Select.from_-2442"><span class="linenos">2442</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.from_-2443"><a href="#Select.from_-2443"><span class="linenos">2443</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="Select.from_-2444"><a href="#Select.from_-2444"><span class="linenos">2444</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="Select.from_-2445"><a href="#Select.from_-2445"><span class="linenos">2445</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.from_-2446"><a href="#Select.from_-2446"><span class="linenos">2446</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;from&quot;</span><span class="p">,</span>
</span><span id="Select.from_-2447"><a href="#Select.from_-2447"><span class="linenos">2447</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span>
</span><span id="Select.from_-2448"><a href="#Select.from_-2448"><span class="linenos">2448</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span>
</span><span id="Select.from_-2449"><a href="#Select.from_-2449"><span class="linenos">2449</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.from_-2450"><a href="#Select.from_-2450"><span class="linenos">2450</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.from_-2451"><a href="#Select.from_-2451"><span class="linenos">2451</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.from_-2452"><a href="#Select.from_-2452"><span class="linenos">2452</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Set the FROM expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT x FROM tbl&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression :</strong> the SQL code strings to parse.
If a <code><a href="#From">From</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#From">From</a></code>.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified Select expression.</p>
</blockquote>
</div>
</div>
<div id="Select.group_by" class="classattr">
<input id="Select.group_by-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">group_by</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.group_by-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.group_by"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.group_by-2454"><a href="#Select.group_by-2454"><span class="linenos">2454</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span>
</span><span id="Select.group_by-2455"><a href="#Select.group_by-2455"><span class="linenos">2455</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select.group_by-2456"><a href="#Select.group_by-2456"><span class="linenos">2456</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select.group_by-2457"><a href="#Select.group_by-2457"><span class="linenos">2457</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.group_by-2458"><a href="#Select.group_by-2458"><span class="linenos">2458</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.group_by-2459"><a href="#Select.group_by-2459"><span class="linenos">2459</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.group_by-2460"><a href="#Select.group_by-2460"><span class="linenos">2460</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.group_by-2461"><a href="#Select.group_by-2461"><span class="linenos">2461</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.group_by-2462"><a href="#Select.group_by-2462"><span class="linenos">2462</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.group_by-2463"><a href="#Select.group_by-2463"><span class="linenos">2463</span></a><span class="sd"> Set the GROUP BY expression.</span>
</span><span id="Select.group_by-2464"><a href="#Select.group_by-2464"><span class="linenos">2464</span></a>
</span><span id="Select.group_by-2465"><a href="#Select.group_by-2465"><span class="linenos">2465</span></a><span class="sd"> Example:</span>
</span><span id="Select.group_by-2466"><a href="#Select.group_by-2466"><span class="linenos">2466</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;, &quot;COUNT(1)&quot;).group_by(&quot;x&quot;).sql()</span>
</span><span id="Select.group_by-2467"><a href="#Select.group_by-2467"><span class="linenos">2467</span></a><span class="sd"> &#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
</span><span id="Select.group_by-2468"><a href="#Select.group_by-2468"><span class="linenos">2468</span></a>
</span><span id="Select.group_by-2469"><a href="#Select.group_by-2469"><span class="linenos">2469</span></a><span class="sd"> Args:</span>
</span><span id="Select.group_by-2470"><a href="#Select.group_by-2470"><span class="linenos">2470</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select.group_by-2471"><a href="#Select.group_by-2471"><span class="linenos">2471</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
</span><span id="Select.group_by-2472"><a href="#Select.group_by-2472"><span class="linenos">2472</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span>
</span><span id="Select.group_by-2473"><a href="#Select.group_by-2473"><span class="linenos">2473</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span>
</span><span id="Select.group_by-2474"><a href="#Select.group_by-2474"><span class="linenos">2474</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select.group_by-2475"><a href="#Select.group_by-2475"><span class="linenos">2475</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span>
</span><span id="Select.group_by-2476"><a href="#Select.group_by-2476"><span class="linenos">2476</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select.group_by-2477"><a href="#Select.group_by-2477"><span class="linenos">2477</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.group_by-2478"><a href="#Select.group_by-2478"><span class="linenos">2478</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select.group_by-2479"><a href="#Select.group_by-2479"><span class="linenos">2479</span></a>
</span><span id="Select.group_by-2480"><a href="#Select.group_by-2480"><span class="linenos">2480</span></a><span class="sd"> Returns:</span>
</span><span id="Select.group_by-2481"><a href="#Select.group_by-2481"><span class="linenos">2481</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select.group_by-2482"><a href="#Select.group_by-2482"><span class="linenos">2482</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.group_by-2483"><a href="#Select.group_by-2483"><span class="linenos">2483</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span>
</span><span id="Select.group_by-2484"><a href="#Select.group_by-2484"><span class="linenos">2484</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
</span><span id="Select.group_by-2485"><a href="#Select.group_by-2485"><span class="linenos">2485</span></a>
</span><span id="Select.group_by-2486"><a href="#Select.group_by-2486"><span class="linenos">2486</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="Select.group_by-2487"><a href="#Select.group_by-2487"><span class="linenos">2487</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select.group_by-2488"><a href="#Select.group_by-2488"><span class="linenos">2488</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.group_by-2489"><a href="#Select.group_by-2489"><span class="linenos">2489</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;group&quot;</span><span class="p">,</span>
</span><span id="Select.group_by-2490"><a href="#Select.group_by-2490"><span class="linenos">2490</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select.group_by-2491"><a href="#Select.group_by-2491"><span class="linenos">2491</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.group_by-2492"><a href="#Select.group_by-2492"><span class="linenos">2492</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;GROUP BY&quot;</span><span class="p">,</span>
</span><span id="Select.group_by-2493"><a href="#Select.group_by-2493"><span class="linenos">2493</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span>
</span><span id="Select.group_by-2494"><a href="#Select.group_by-2494"><span class="linenos">2494</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.group_by-2495"><a href="#Select.group_by-2495"><span class="linenos">2495</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.group_by-2496"><a href="#Select.group_by-2496"><span class="linenos">2496</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Set the GROUP BY expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <span class="s2">&quot;COUNT(1)&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">group_by</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT x, COUNT(1) FROM tbl GROUP BY x&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If a <code><a href="#Group">Group</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#Group">Group</a></code>.
If nothing is passed in then a group by is not applied to the expression</li>
<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this flattens all the <code><a href="#Group">Group</a></code> expression into a single expression.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified Select expression.</p>
</blockquote>
</div>
</div>
<div id="Select.order_by" class="classattr">
<input id="Select.order_by-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">order_by</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.order_by-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.order_by"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.order_by-2498"><a href="#Select.order_by-2498"><span class="linenos">2498</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span>
</span><span id="Select.order_by-2499"><a href="#Select.order_by-2499"><span class="linenos">2499</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select.order_by-2500"><a href="#Select.order_by-2500"><span class="linenos">2500</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select.order_by-2501"><a href="#Select.order_by-2501"><span class="linenos">2501</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.order_by-2502"><a href="#Select.order_by-2502"><span class="linenos">2502</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.order_by-2503"><a href="#Select.order_by-2503"><span class="linenos">2503</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.order_by-2504"><a href="#Select.order_by-2504"><span class="linenos">2504</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.order_by-2505"><a href="#Select.order_by-2505"><span class="linenos">2505</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.order_by-2506"><a href="#Select.order_by-2506"><span class="linenos">2506</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.order_by-2507"><a href="#Select.order_by-2507"><span class="linenos">2507</span></a><span class="sd"> Set the ORDER BY expression.</span>
</span><span id="Select.order_by-2508"><a href="#Select.order_by-2508"><span class="linenos">2508</span></a>
</span><span id="Select.order_by-2509"><a href="#Select.order_by-2509"><span class="linenos">2509</span></a><span class="sd"> Example:</span>
</span><span id="Select.order_by-2510"><a href="#Select.order_by-2510"><span class="linenos">2510</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).order_by(&quot;x DESC&quot;).sql()</span>
</span><span id="Select.order_by-2511"><a href="#Select.order_by-2511"><span class="linenos">2511</span></a><span class="sd"> &#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
</span><span id="Select.order_by-2512"><a href="#Select.order_by-2512"><span class="linenos">2512</span></a>
</span><span id="Select.order_by-2513"><a href="#Select.order_by-2513"><span class="linenos">2513</span></a><span class="sd"> Args:</span>
</span><span id="Select.order_by-2514"><a href="#Select.order_by-2514"><span class="linenos">2514</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select.order_by-2515"><a href="#Select.order_by-2515"><span class="linenos">2515</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
</span><span id="Select.order_by-2516"><a href="#Select.order_by-2516"><span class="linenos">2516</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span>
</span><span id="Select.order_by-2517"><a href="#Select.order_by-2517"><span class="linenos">2517</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select.order_by-2518"><a href="#Select.order_by-2518"><span class="linenos">2518</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
</span><span id="Select.order_by-2519"><a href="#Select.order_by-2519"><span class="linenos">2519</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select.order_by-2520"><a href="#Select.order_by-2520"><span class="linenos">2520</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.order_by-2521"><a href="#Select.order_by-2521"><span class="linenos">2521</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select.order_by-2522"><a href="#Select.order_by-2522"><span class="linenos">2522</span></a>
</span><span id="Select.order_by-2523"><a href="#Select.order_by-2523"><span class="linenos">2523</span></a><span class="sd"> Returns:</span>
</span><span id="Select.order_by-2524"><a href="#Select.order_by-2524"><span class="linenos">2524</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select.order_by-2525"><a href="#Select.order_by-2525"><span class="linenos">2525</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.order_by-2526"><a href="#Select.order_by-2526"><span class="linenos">2526</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="Select.order_by-2527"><a href="#Select.order_by-2527"><span class="linenos">2527</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select.order_by-2528"><a href="#Select.order_by-2528"><span class="linenos">2528</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.order_by-2529"><a href="#Select.order_by-2529"><span class="linenos">2529</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;order&quot;</span><span class="p">,</span>
</span><span id="Select.order_by-2530"><a href="#Select.order_by-2530"><span class="linenos">2530</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select.order_by-2531"><a href="#Select.order_by-2531"><span class="linenos">2531</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.order_by-2532"><a href="#Select.order_by-2532"><span class="linenos">2532</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;ORDER BY&quot;</span><span class="p">,</span>
</span><span id="Select.order_by-2533"><a href="#Select.order_by-2533"><span class="linenos">2533</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span>
</span><span id="Select.order_by-2534"><a href="#Select.order_by-2534"><span class="linenos">2534</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.order_by-2535"><a href="#Select.order_by-2535"><span class="linenos">2535</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.order_by-2536"><a href="#Select.order_by-2536"><span class="linenos">2536</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Set the ORDER BY expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s2">&quot;x DESC&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT x FROM tbl ORDER BY x DESC&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If a <code><a href="#Group">Group</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#Order">Order</a></code>.</li>
<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this flattens all the <code><a href="#Order">Order</a></code> expression into a single expression.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified Select expression.</p>
</blockquote>
</div>
</div>
<div id="Select.sort_by" class="classattr">
<input id="Select.sort_by-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">sort_by</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.sort_by-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.sort_by"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.sort_by-2538"><a href="#Select.sort_by-2538"><span class="linenos">2538</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span>
</span><span id="Select.sort_by-2539"><a href="#Select.sort_by-2539"><span class="linenos">2539</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select.sort_by-2540"><a href="#Select.sort_by-2540"><span class="linenos">2540</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select.sort_by-2541"><a href="#Select.sort_by-2541"><span class="linenos">2541</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.sort_by-2542"><a href="#Select.sort_by-2542"><span class="linenos">2542</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.sort_by-2543"><a href="#Select.sort_by-2543"><span class="linenos">2543</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.sort_by-2544"><a href="#Select.sort_by-2544"><span class="linenos">2544</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.sort_by-2545"><a href="#Select.sort_by-2545"><span class="linenos">2545</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.sort_by-2546"><a href="#Select.sort_by-2546"><span class="linenos">2546</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.sort_by-2547"><a href="#Select.sort_by-2547"><span class="linenos">2547</span></a><span class="sd"> Set the SORT BY expression.</span>
</span><span id="Select.sort_by-2548"><a href="#Select.sort_by-2548"><span class="linenos">2548</span></a>
</span><span id="Select.sort_by-2549"><a href="#Select.sort_by-2549"><span class="linenos">2549</span></a><span class="sd"> Example:</span>
</span><span id="Select.sort_by-2550"><a href="#Select.sort_by-2550"><span class="linenos">2550</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).sort_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
</span><span id="Select.sort_by-2551"><a href="#Select.sort_by-2551"><span class="linenos">2551</span></a><span class="sd"> &#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
</span><span id="Select.sort_by-2552"><a href="#Select.sort_by-2552"><span class="linenos">2552</span></a>
</span><span id="Select.sort_by-2553"><a href="#Select.sort_by-2553"><span class="linenos">2553</span></a><span class="sd"> Args:</span>
</span><span id="Select.sort_by-2554"><a href="#Select.sort_by-2554"><span class="linenos">2554</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select.sort_by-2555"><a href="#Select.sort_by-2555"><span class="linenos">2555</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
</span><span id="Select.sort_by-2556"><a href="#Select.sort_by-2556"><span class="linenos">2556</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span>
</span><span id="Select.sort_by-2557"><a href="#Select.sort_by-2557"><span class="linenos">2557</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select.sort_by-2558"><a href="#Select.sort_by-2558"><span class="linenos">2558</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
</span><span id="Select.sort_by-2559"><a href="#Select.sort_by-2559"><span class="linenos">2559</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select.sort_by-2560"><a href="#Select.sort_by-2560"><span class="linenos">2560</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.sort_by-2561"><a href="#Select.sort_by-2561"><span class="linenos">2561</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select.sort_by-2562"><a href="#Select.sort_by-2562"><span class="linenos">2562</span></a>
</span><span id="Select.sort_by-2563"><a href="#Select.sort_by-2563"><span class="linenos">2563</span></a><span class="sd"> Returns:</span>
</span><span id="Select.sort_by-2564"><a href="#Select.sort_by-2564"><span class="linenos">2564</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select.sort_by-2565"><a href="#Select.sort_by-2565"><span class="linenos">2565</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.sort_by-2566"><a href="#Select.sort_by-2566"><span class="linenos">2566</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="Select.sort_by-2567"><a href="#Select.sort_by-2567"><span class="linenos">2567</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select.sort_by-2568"><a href="#Select.sort_by-2568"><span class="linenos">2568</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.sort_by-2569"><a href="#Select.sort_by-2569"><span class="linenos">2569</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;sort&quot;</span><span class="p">,</span>
</span><span id="Select.sort_by-2570"><a href="#Select.sort_by-2570"><span class="linenos">2570</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select.sort_by-2571"><a href="#Select.sort_by-2571"><span class="linenos">2571</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.sort_by-2572"><a href="#Select.sort_by-2572"><span class="linenos">2572</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;SORT BY&quot;</span><span class="p">,</span>
</span><span id="Select.sort_by-2573"><a href="#Select.sort_by-2573"><span class="linenos">2573</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span>
</span><span id="Select.sort_by-2574"><a href="#Select.sort_by-2574"><span class="linenos">2574</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.sort_by-2575"><a href="#Select.sort_by-2575"><span class="linenos">2575</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.sort_by-2576"><a href="#Select.sort_by-2576"><span class="linenos">2576</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Set the SORT BY expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sort_by</span><span class="p">(</span><span class="s2">&quot;x DESC&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="s2">&quot;hive&quot;</span><span class="p">)</span>
<span class="go">&#39;SELECT x FROM tbl SORT BY x DESC&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If a <code><a href="#Group">Group</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code>SORT</code>.</li>
<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this flattens all the <code><a href="#Order">Order</a></code> expression into a single expression.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified Select expression.</p>
</blockquote>
</div>
</div>
<div id="Select.cluster_by" class="classattr">
<input id="Select.cluster_by-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">cluster_by</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.cluster_by-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.cluster_by"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.cluster_by-2578"><a href="#Select.cluster_by-2578"><span class="linenos">2578</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span>
</span><span id="Select.cluster_by-2579"><a href="#Select.cluster_by-2579"><span class="linenos">2579</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select.cluster_by-2580"><a href="#Select.cluster_by-2580"><span class="linenos">2580</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select.cluster_by-2581"><a href="#Select.cluster_by-2581"><span class="linenos">2581</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.cluster_by-2582"><a href="#Select.cluster_by-2582"><span class="linenos">2582</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.cluster_by-2583"><a href="#Select.cluster_by-2583"><span class="linenos">2583</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.cluster_by-2584"><a href="#Select.cluster_by-2584"><span class="linenos">2584</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.cluster_by-2585"><a href="#Select.cluster_by-2585"><span class="linenos">2585</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.cluster_by-2586"><a href="#Select.cluster_by-2586"><span class="linenos">2586</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.cluster_by-2587"><a href="#Select.cluster_by-2587"><span class="linenos">2587</span></a><span class="sd"> Set the CLUSTER BY expression.</span>
</span><span id="Select.cluster_by-2588"><a href="#Select.cluster_by-2588"><span class="linenos">2588</span></a>
</span><span id="Select.cluster_by-2589"><a href="#Select.cluster_by-2589"><span class="linenos">2589</span></a><span class="sd"> Example:</span>
</span><span id="Select.cluster_by-2590"><a href="#Select.cluster_by-2590"><span class="linenos">2590</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).cluster_by(&quot;x DESC&quot;).sql(dialect=&quot;hive&quot;)</span>
</span><span id="Select.cluster_by-2591"><a href="#Select.cluster_by-2591"><span class="linenos">2591</span></a><span class="sd"> &#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
</span><span id="Select.cluster_by-2592"><a href="#Select.cluster_by-2592"><span class="linenos">2592</span></a>
</span><span id="Select.cluster_by-2593"><a href="#Select.cluster_by-2593"><span class="linenos">2593</span></a><span class="sd"> Args:</span>
</span><span id="Select.cluster_by-2594"><a href="#Select.cluster_by-2594"><span class="linenos">2594</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select.cluster_by-2595"><a href="#Select.cluster_by-2595"><span class="linenos">2595</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span>
</span><span id="Select.cluster_by-2596"><a href="#Select.cluster_by-2596"><span class="linenos">2596</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span>
</span><span id="Select.cluster_by-2597"><a href="#Select.cluster_by-2597"><span class="linenos">2597</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select.cluster_by-2598"><a href="#Select.cluster_by-2598"><span class="linenos">2598</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span>
</span><span id="Select.cluster_by-2599"><a href="#Select.cluster_by-2599"><span class="linenos">2599</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select.cluster_by-2600"><a href="#Select.cluster_by-2600"><span class="linenos">2600</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.cluster_by-2601"><a href="#Select.cluster_by-2601"><span class="linenos">2601</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select.cluster_by-2602"><a href="#Select.cluster_by-2602"><span class="linenos">2602</span></a>
</span><span id="Select.cluster_by-2603"><a href="#Select.cluster_by-2603"><span class="linenos">2603</span></a><span class="sd"> Returns:</span>
</span><span id="Select.cluster_by-2604"><a href="#Select.cluster_by-2604"><span class="linenos">2604</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select.cluster_by-2605"><a href="#Select.cluster_by-2605"><span class="linenos">2605</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.cluster_by-2606"><a href="#Select.cluster_by-2606"><span class="linenos">2606</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span>
</span><span id="Select.cluster_by-2607"><a href="#Select.cluster_by-2607"><span class="linenos">2607</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select.cluster_by-2608"><a href="#Select.cluster_by-2608"><span class="linenos">2608</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.cluster_by-2609"><a href="#Select.cluster_by-2609"><span class="linenos">2609</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;cluster&quot;</span><span class="p">,</span>
</span><span id="Select.cluster_by-2610"><a href="#Select.cluster_by-2610"><span class="linenos">2610</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select.cluster_by-2611"><a href="#Select.cluster_by-2611"><span class="linenos">2611</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.cluster_by-2612"><a href="#Select.cluster_by-2612"><span class="linenos">2612</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;CLUSTER BY&quot;</span><span class="p">,</span>
</span><span id="Select.cluster_by-2613"><a href="#Select.cluster_by-2613"><span class="linenos">2613</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span>
</span><span id="Select.cluster_by-2614"><a href="#Select.cluster_by-2614"><span class="linenos">2614</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.cluster_by-2615"><a href="#Select.cluster_by-2615"><span class="linenos">2615</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.cluster_by-2616"><a href="#Select.cluster_by-2616"><span class="linenos">2616</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Set the CLUSTER BY expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">cluster_by</span><span class="p">(</span><span class="s2">&quot;x DESC&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">dialect</span><span class="o">=</span><span class="s2">&quot;hive&quot;</span><span class="p">)</span>
<span class="go">&#39;SELECT x FROM tbl CLUSTER BY x DESC&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If a <code><a href="#Group">Group</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#Cluster">Cluster</a></code>.</li>
<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this flattens all the <code><a href="#Order">Order</a></code> expression into a single expression.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified Select expression.</p>
</blockquote>
</div>
</div>
<div id="Select.limit" class="classattr">
<input id="Select.limit-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">limit</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="nb">int</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.limit-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.limit"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.limit-2618"><a href="#Select.limit-2618"><span class="linenos">2618</span></a> <span class="k">def</span> <span class="nf">limit</span><span class="p">(</span>
</span><span id="Select.limit-2619"><a href="#Select.limit-2619"><span class="linenos">2619</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Select.limit-2620"><a href="#Select.limit-2620"><span class="linenos">2620</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.limit-2621"><a href="#Select.limit-2621"><span class="linenos">2621</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.limit-2622"><a href="#Select.limit-2622"><span class="linenos">2622</span></a><span class="sd"> Set the LIMIT expression.</span>
</span><span id="Select.limit-2623"><a href="#Select.limit-2623"><span class="linenos">2623</span></a>
</span><span id="Select.limit-2624"><a href="#Select.limit-2624"><span class="linenos">2624</span></a><span class="sd"> Example:</span>
</span><span id="Select.limit-2625"><a href="#Select.limit-2625"><span class="linenos">2625</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).limit(10).sql()</span>
</span><span id="Select.limit-2626"><a href="#Select.limit-2626"><span class="linenos">2626</span></a><span class="sd"> &#39;SELECT x FROM tbl LIMIT 10&#39;</span>
</span><span id="Select.limit-2627"><a href="#Select.limit-2627"><span class="linenos">2627</span></a>
</span><span id="Select.limit-2628"><a href="#Select.limit-2628"><span class="linenos">2628</span></a><span class="sd"> Args:</span>
</span><span id="Select.limit-2629"><a href="#Select.limit-2629"><span class="linenos">2629</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="Select.limit-2630"><a href="#Select.limit-2630"><span class="linenos">2630</span></a><span class="sd"> This can also be an integer.</span>
</span><span id="Select.limit-2631"><a href="#Select.limit-2631"><span class="linenos">2631</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span>
</span><span id="Select.limit-2632"><a href="#Select.limit-2632"><span class="linenos">2632</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span>
</span><span id="Select.limit-2633"><a href="#Select.limit-2633"><span class="linenos">2633</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select.limit-2634"><a href="#Select.limit-2634"><span class="linenos">2634</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.limit-2635"><a href="#Select.limit-2635"><span class="linenos">2635</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select.limit-2636"><a href="#Select.limit-2636"><span class="linenos">2636</span></a>
</span><span id="Select.limit-2637"><a href="#Select.limit-2637"><span class="linenos">2637</span></a><span class="sd"> Returns:</span>
</span><span id="Select.limit-2638"><a href="#Select.limit-2638"><span class="linenos">2638</span></a><span class="sd"> Select: the modified expression.</span>
</span><span id="Select.limit-2639"><a href="#Select.limit-2639"><span class="linenos">2639</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.limit-2640"><a href="#Select.limit-2640"><span class="linenos">2640</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="Select.limit-2641"><a href="#Select.limit-2641"><span class="linenos">2641</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="Select.limit-2642"><a href="#Select.limit-2642"><span class="linenos">2642</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.limit-2643"><a href="#Select.limit-2643"><span class="linenos">2643</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;limit&quot;</span><span class="p">,</span>
</span><span id="Select.limit-2644"><a href="#Select.limit-2644"><span class="linenos">2644</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span>
</span><span id="Select.limit-2645"><a href="#Select.limit-2645"><span class="linenos">2645</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LIMIT&quot;</span><span class="p">,</span>
</span><span id="Select.limit-2646"><a href="#Select.limit-2646"><span class="linenos">2646</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.limit-2647"><a href="#Select.limit-2647"><span class="linenos">2647</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.limit-2648"><a href="#Select.limit-2648"><span class="linenos">2648</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.limit-2649"><a href="#Select.limit-2649"><span class="linenos">2649</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Set the LIMIT expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">limit</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT x FROM tbl LIMIT 10&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> the SQL code string to parse.
This can also be an integer.
If a <code><a href="#Limit">Limit</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#Limit">Limit</a></code>.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Select: the modified expression.</p>
</blockquote>
</div>
</div>
<div id="Select.offset" class="classattr">
<input id="Select.offset-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">offset</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="nb">int</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.offset-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.offset"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.offset-2651"><a href="#Select.offset-2651"><span class="linenos">2651</span></a> <span class="k">def</span> <span class="nf">offset</span><span class="p">(</span>
</span><span id="Select.offset-2652"><a href="#Select.offset-2652"><span class="linenos">2652</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span> <span class="o">|</span> <span class="nb">int</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="Select.offset-2653"><a href="#Select.offset-2653"><span class="linenos">2653</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.offset-2654"><a href="#Select.offset-2654"><span class="linenos">2654</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.offset-2655"><a href="#Select.offset-2655"><span class="linenos">2655</span></a><span class="sd"> Set the OFFSET expression.</span>
</span><span id="Select.offset-2656"><a href="#Select.offset-2656"><span class="linenos">2656</span></a>
</span><span id="Select.offset-2657"><a href="#Select.offset-2657"><span class="linenos">2657</span></a><span class="sd"> Example:</span>
</span><span id="Select.offset-2658"><a href="#Select.offset-2658"><span class="linenos">2658</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).offset(10).sql()</span>
</span><span id="Select.offset-2659"><a href="#Select.offset-2659"><span class="linenos">2659</span></a><span class="sd"> &#39;SELECT x FROM tbl OFFSET 10&#39;</span>
</span><span id="Select.offset-2660"><a href="#Select.offset-2660"><span class="linenos">2660</span></a>
</span><span id="Select.offset-2661"><a href="#Select.offset-2661"><span class="linenos">2661</span></a><span class="sd"> Args:</span>
</span><span id="Select.offset-2662"><a href="#Select.offset-2662"><span class="linenos">2662</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="Select.offset-2663"><a href="#Select.offset-2663"><span class="linenos">2663</span></a><span class="sd"> This can also be an integer.</span>
</span><span id="Select.offset-2664"><a href="#Select.offset-2664"><span class="linenos">2664</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span>
</span><span id="Select.offset-2665"><a href="#Select.offset-2665"><span class="linenos">2665</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span>
</span><span id="Select.offset-2666"><a href="#Select.offset-2666"><span class="linenos">2666</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="Select.offset-2667"><a href="#Select.offset-2667"><span class="linenos">2667</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.offset-2668"><a href="#Select.offset-2668"><span class="linenos">2668</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select.offset-2669"><a href="#Select.offset-2669"><span class="linenos">2669</span></a>
</span><span id="Select.offset-2670"><a href="#Select.offset-2670"><span class="linenos">2670</span></a><span class="sd"> Returns:</span>
</span><span id="Select.offset-2671"><a href="#Select.offset-2671"><span class="linenos">2671</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select.offset-2672"><a href="#Select.offset-2672"><span class="linenos">2672</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.offset-2673"><a href="#Select.offset-2673"><span class="linenos">2673</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span>
</span><span id="Select.offset-2674"><a href="#Select.offset-2674"><span class="linenos">2674</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span>
</span><span id="Select.offset-2675"><a href="#Select.offset-2675"><span class="linenos">2675</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.offset-2676"><a href="#Select.offset-2676"><span class="linenos">2676</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;offset&quot;</span><span class="p">,</span>
</span><span id="Select.offset-2677"><a href="#Select.offset-2677"><span class="linenos">2677</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span>
</span><span id="Select.offset-2678"><a href="#Select.offset-2678"><span class="linenos">2678</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;OFFSET&quot;</span><span class="p">,</span>
</span><span id="Select.offset-2679"><a href="#Select.offset-2679"><span class="linenos">2679</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.offset-2680"><a href="#Select.offset-2680"><span class="linenos">2680</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.offset-2681"><a href="#Select.offset-2681"><span class="linenos">2681</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.offset-2682"><a href="#Select.offset-2682"><span class="linenos">2682</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Set the OFFSET expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">offset</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT x FROM tbl OFFSET 10&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> the SQL code string to parse.
This can also be an integer.
If a <code><a href="#Offset">Offset</a></code> instance is passed, this is used as-is.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be wrapped in a <code><a href="#Offset">Offset</a></code>.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified Select expression.</p>
</blockquote>
</div>
</div>
<div id="Select.select" class="classattr">
<input id="Select.select-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">select</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.select-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.select"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.select-2684"><a href="#Select.select-2684"><span class="linenos">2684</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span>
</span><span id="Select.select-2685"><a href="#Select.select-2685"><span class="linenos">2685</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select.select-2686"><a href="#Select.select-2686"><span class="linenos">2686</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select.select-2687"><a href="#Select.select-2687"><span class="linenos">2687</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.select-2688"><a href="#Select.select-2688"><span class="linenos">2688</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.select-2689"><a href="#Select.select-2689"><span class="linenos">2689</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.select-2690"><a href="#Select.select-2690"><span class="linenos">2690</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.select-2691"><a href="#Select.select-2691"><span class="linenos">2691</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.select-2692"><a href="#Select.select-2692"><span class="linenos">2692</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.select-2693"><a href="#Select.select-2693"><span class="linenos">2693</span></a><span class="sd"> Append to or set the SELECT expressions.</span>
</span><span id="Select.select-2694"><a href="#Select.select-2694"><span class="linenos">2694</span></a>
</span><span id="Select.select-2695"><a href="#Select.select-2695"><span class="linenos">2695</span></a><span class="sd"> Example:</span>
</span><span id="Select.select-2696"><a href="#Select.select-2696"><span class="linenos">2696</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;y&quot;).sql()</span>
</span><span id="Select.select-2697"><a href="#Select.select-2697"><span class="linenos">2697</span></a><span class="sd"> &#39;SELECT x, y&#39;</span>
</span><span id="Select.select-2698"><a href="#Select.select-2698"><span class="linenos">2698</span></a>
</span><span id="Select.select-2699"><a href="#Select.select-2699"><span class="linenos">2699</span></a><span class="sd"> Args:</span>
</span><span id="Select.select-2700"><a href="#Select.select-2700"><span class="linenos">2700</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select.select-2701"><a href="#Select.select-2701"><span class="linenos">2701</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select.select-2702"><a href="#Select.select-2702"><span class="linenos">2702</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select.select-2703"><a href="#Select.select-2703"><span class="linenos">2703</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="Select.select-2704"><a href="#Select.select-2704"><span class="linenos">2704</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Select.select-2705"><a href="#Select.select-2705"><span class="linenos">2705</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.select-2706"><a href="#Select.select-2706"><span class="linenos">2706</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select.select-2707"><a href="#Select.select-2707"><span class="linenos">2707</span></a>
</span><span id="Select.select-2708"><a href="#Select.select-2708"><span class="linenos">2708</span></a><span class="sd"> Returns:</span>
</span><span id="Select.select-2709"><a href="#Select.select-2709"><span class="linenos">2709</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select.select-2710"><a href="#Select.select-2710"><span class="linenos">2710</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.select-2711"><a href="#Select.select-2711"><span class="linenos">2711</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="Select.select-2712"><a href="#Select.select-2712"><span class="linenos">2712</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select.select-2713"><a href="#Select.select-2713"><span class="linenos">2713</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.select-2714"><a href="#Select.select-2714"><span class="linenos">2714</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
</span><span id="Select.select-2715"><a href="#Select.select-2715"><span class="linenos">2715</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select.select-2716"><a href="#Select.select-2716"><span class="linenos">2716</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.select-2717"><a href="#Select.select-2717"><span class="linenos">2717</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.select-2718"><a href="#Select.select-2718"><span class="linenos">2718</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.select-2719"><a href="#Select.select-2719"><span class="linenos">2719</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Append to or set the SELECT expressions.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT x, y&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this resets the expressions.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified Select expression.</p>
</blockquote>
</div>
</div>
<div id="Select.lateral" class="classattr">
<input id="Select.lateral-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">lateral</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.lateral-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.lateral"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.lateral-2721"><a href="#Select.lateral-2721"><span class="linenos">2721</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span>
</span><span id="Select.lateral-2722"><a href="#Select.lateral-2722"><span class="linenos">2722</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select.lateral-2723"><a href="#Select.lateral-2723"><span class="linenos">2723</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select.lateral-2724"><a href="#Select.lateral-2724"><span class="linenos">2724</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.lateral-2725"><a href="#Select.lateral-2725"><span class="linenos">2725</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.lateral-2726"><a href="#Select.lateral-2726"><span class="linenos">2726</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.lateral-2727"><a href="#Select.lateral-2727"><span class="linenos">2727</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.lateral-2728"><a href="#Select.lateral-2728"><span class="linenos">2728</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.lateral-2729"><a href="#Select.lateral-2729"><span class="linenos">2729</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.lateral-2730"><a href="#Select.lateral-2730"><span class="linenos">2730</span></a><span class="sd"> Append to or set the LATERAL expressions.</span>
</span><span id="Select.lateral-2731"><a href="#Select.lateral-2731"><span class="linenos">2731</span></a>
</span><span id="Select.lateral-2732"><a href="#Select.lateral-2732"><span class="linenos">2732</span></a><span class="sd"> Example:</span>
</span><span id="Select.lateral-2733"><a href="#Select.lateral-2733"><span class="linenos">2733</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).lateral(&quot;OUTER explode(y) tbl2 AS z&quot;).from_(&quot;tbl&quot;).sql()</span>
</span><span id="Select.lateral-2734"><a href="#Select.lateral-2734"><span class="linenos">2734</span></a><span class="sd"> &#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
</span><span id="Select.lateral-2735"><a href="#Select.lateral-2735"><span class="linenos">2735</span></a>
</span><span id="Select.lateral-2736"><a href="#Select.lateral-2736"><span class="linenos">2736</span></a><span class="sd"> Args:</span>
</span><span id="Select.lateral-2737"><a href="#Select.lateral-2737"><span class="linenos">2737</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select.lateral-2738"><a href="#Select.lateral-2738"><span class="linenos">2738</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select.lateral-2739"><a href="#Select.lateral-2739"><span class="linenos">2739</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select.lateral-2740"><a href="#Select.lateral-2740"><span class="linenos">2740</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="Select.lateral-2741"><a href="#Select.lateral-2741"><span class="linenos">2741</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Select.lateral-2742"><a href="#Select.lateral-2742"><span class="linenos">2742</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.lateral-2743"><a href="#Select.lateral-2743"><span class="linenos">2743</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select.lateral-2744"><a href="#Select.lateral-2744"><span class="linenos">2744</span></a>
</span><span id="Select.lateral-2745"><a href="#Select.lateral-2745"><span class="linenos">2745</span></a><span class="sd"> Returns:</span>
</span><span id="Select.lateral-2746"><a href="#Select.lateral-2746"><span class="linenos">2746</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select.lateral-2747"><a href="#Select.lateral-2747"><span class="linenos">2747</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.lateral-2748"><a href="#Select.lateral-2748"><span class="linenos">2748</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="Select.lateral-2749"><a href="#Select.lateral-2749"><span class="linenos">2749</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select.lateral-2750"><a href="#Select.lateral-2750"><span class="linenos">2750</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.lateral-2751"><a href="#Select.lateral-2751"><span class="linenos">2751</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;laterals&quot;</span><span class="p">,</span>
</span><span id="Select.lateral-2752"><a href="#Select.lateral-2752"><span class="linenos">2752</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select.lateral-2753"><a href="#Select.lateral-2753"><span class="linenos">2753</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span>
</span><span id="Select.lateral-2754"><a href="#Select.lateral-2754"><span class="linenos">2754</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;LATERAL VIEW&quot;</span><span class="p">,</span>
</span><span id="Select.lateral-2755"><a href="#Select.lateral-2755"><span class="linenos">2755</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.lateral-2756"><a href="#Select.lateral-2756"><span class="linenos">2756</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.lateral-2757"><a href="#Select.lateral-2757"><span class="linenos">2757</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.lateral-2758"><a href="#Select.lateral-2758"><span class="linenos">2758</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Append to or set the LATERAL expressions.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">lateral</span><span class="p">(</span><span class="s2">&quot;OUTER explode(y) tbl2 AS z&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this resets the expressions.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified Select expression.</p>
</blockquote>
</div>
</div>
<div id="Select.join" class="classattr">
<input id="Select.join-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">join</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">on</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">using</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">join_type</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">join_alias</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.join-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.join"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.join-2760"><a href="#Select.join-2760"><span class="linenos">2760</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span>
</span><span id="Select.join-2761"><a href="#Select.join-2761"><span class="linenos">2761</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select.join-2762"><a href="#Select.join-2762"><span class="linenos">2762</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Select.join-2763"><a href="#Select.join-2763"><span class="linenos">2763</span></a> <span class="n">on</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.join-2764"><a href="#Select.join-2764"><span class="linenos">2764</span></a> <span class="n">using</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.join-2765"><a href="#Select.join-2765"><span class="linenos">2765</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.join-2766"><a href="#Select.join-2766"><span class="linenos">2766</span></a> <span class="n">join_type</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.join-2767"><a href="#Select.join-2767"><span class="linenos">2767</span></a> <span class="n">join_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.join-2768"><a href="#Select.join-2768"><span class="linenos">2768</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.join-2769"><a href="#Select.join-2769"><span class="linenos">2769</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.join-2770"><a href="#Select.join-2770"><span class="linenos">2770</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.join-2771"><a href="#Select.join-2771"><span class="linenos">2771</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.join-2772"><a href="#Select.join-2772"><span class="linenos">2772</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.join-2773"><a href="#Select.join-2773"><span class="linenos">2773</span></a><span class="sd"> Append to or set the JOIN expressions.</span>
</span><span id="Select.join-2774"><a href="#Select.join-2774"><span class="linenos">2774</span></a>
</span><span id="Select.join-2775"><a href="#Select.join-2775"><span class="linenos">2775</span></a><span class="sd"> Example:</span>
</span><span id="Select.join-2776"><a href="#Select.join-2776"><span class="linenos">2776</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;).sql()</span>
</span><span id="Select.join-2777"><a href="#Select.join-2777"><span class="linenos">2777</span></a><span class="sd"> &#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
</span><span id="Select.join-2778"><a href="#Select.join-2778"><span class="linenos">2778</span></a>
</span><span id="Select.join-2779"><a href="#Select.join-2779"><span class="linenos">2779</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;1&quot;).from_(&quot;a&quot;).join(&quot;b&quot;, using=[&quot;x&quot;, &quot;y&quot;, &quot;z&quot;]).sql()</span>
</span><span id="Select.join-2780"><a href="#Select.join-2780"><span class="linenos">2780</span></a><span class="sd"> &#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
</span><span id="Select.join-2781"><a href="#Select.join-2781"><span class="linenos">2781</span></a>
</span><span id="Select.join-2782"><a href="#Select.join-2782"><span class="linenos">2782</span></a><span class="sd"> Use `join_type` to change the type of join:</span>
</span><span id="Select.join-2783"><a href="#Select.join-2783"><span class="linenos">2783</span></a>
</span><span id="Select.join-2784"><a href="#Select.join-2784"><span class="linenos">2784</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).join(&quot;tbl2&quot;, on=&quot;tbl1.y = tbl2.y&quot;, join_type=&quot;left outer&quot;).sql()</span>
</span><span id="Select.join-2785"><a href="#Select.join-2785"><span class="linenos">2785</span></a><span class="sd"> &#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
</span><span id="Select.join-2786"><a href="#Select.join-2786"><span class="linenos">2786</span></a>
</span><span id="Select.join-2787"><a href="#Select.join-2787"><span class="linenos">2787</span></a><span class="sd"> Args:</span>
</span><span id="Select.join-2788"><a href="#Select.join-2788"><span class="linenos">2788</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="Select.join-2789"><a href="#Select.join-2789"><span class="linenos">2789</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select.join-2790"><a href="#Select.join-2790"><span class="linenos">2790</span></a><span class="sd"> on: optionally specify the join &quot;on&quot; criteria as a SQL string.</span>
</span><span id="Select.join-2791"><a href="#Select.join-2791"><span class="linenos">2791</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select.join-2792"><a href="#Select.join-2792"><span class="linenos">2792</span></a><span class="sd"> using: optionally specify the join &quot;using&quot; criteria as a SQL string.</span>
</span><span id="Select.join-2793"><a href="#Select.join-2793"><span class="linenos">2793</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select.join-2794"><a href="#Select.join-2794"><span class="linenos">2794</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span>
</span><span id="Select.join-2795"><a href="#Select.join-2795"><span class="linenos">2795</span></a><span class="sd"> Otherwise, this resets the expressions.</span>
</span><span id="Select.join-2796"><a href="#Select.join-2796"><span class="linenos">2796</span></a><span class="sd"> join_type: if set, alter the parsed join type.</span>
</span><span id="Select.join-2797"><a href="#Select.join-2797"><span class="linenos">2797</span></a><span class="sd"> join_alias: an optional alias for the joined source.</span>
</span><span id="Select.join-2798"><a href="#Select.join-2798"><span class="linenos">2798</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Select.join-2799"><a href="#Select.join-2799"><span class="linenos">2799</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.join-2800"><a href="#Select.join-2800"><span class="linenos">2800</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select.join-2801"><a href="#Select.join-2801"><span class="linenos">2801</span></a>
</span><span id="Select.join-2802"><a href="#Select.join-2802"><span class="linenos">2802</span></a><span class="sd"> Returns:</span>
</span><span id="Select.join-2803"><a href="#Select.join-2803"><span class="linenos">2803</span></a><span class="sd"> Select: the modified expression.</span>
</span><span id="Select.join-2804"><a href="#Select.join-2804"><span class="linenos">2804</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.join-2805"><a href="#Select.join-2805"><span class="linenos">2805</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;dialect&quot;</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span>
</span><span id="Select.join-2806"><a href="#Select.join-2806"><span class="linenos">2806</span></a>
</span><span id="Select.join-2807"><a href="#Select.join-2807"><span class="linenos">2807</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="Select.join-2808"><a href="#Select.join-2808"><span class="linenos">2808</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;JOIN&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="Select.join-2809"><a href="#Select.join-2809"><span class="linenos">2809</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span>
</span><span id="Select.join-2810"><a href="#Select.join-2810"><span class="linenos">2810</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="Select.join-2811"><a href="#Select.join-2811"><span class="linenos">2811</span></a>
</span><span id="Select.join-2812"><a href="#Select.join-2812"><span class="linenos">2812</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
</span><span id="Select.join-2813"><a href="#Select.join-2813"><span class="linenos">2813</span></a>
</span><span id="Select.join-2814"><a href="#Select.join-2814"><span class="linenos">2814</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span>
</span><span id="Select.join-2815"><a href="#Select.join-2815"><span class="linenos">2815</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span>
</span><span id="Select.join-2816"><a href="#Select.join-2816"><span class="linenos">2816</span></a>
</span><span id="Select.join-2817"><a href="#Select.join-2817"><span class="linenos">2817</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span>
</span><span id="Select.join-2818"><a href="#Select.join-2818"><span class="linenos">2818</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
</span><span id="Select.join-2819"><a href="#Select.join-2819"><span class="linenos">2819</span></a> <span class="n">side</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
</span><span id="Select.join-2820"><a href="#Select.join-2820"><span class="linenos">2820</span></a> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span>
</span><span id="Select.join-2821"><a href="#Select.join-2821"><span class="linenos">2821</span></a>
</span><span id="Select.join-2822"><a href="#Select.join-2822"><span class="linenos">2822</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">&quot;JOIN_TYPE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="Select.join-2823"><a href="#Select.join-2823"><span class="linenos">2823</span></a>
</span><span id="Select.join-2824"><a href="#Select.join-2824"><span class="linenos">2824</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span>
</span><span id="Select.join-2825"><a href="#Select.join-2825"><span class="linenos">2825</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;natural&quot;</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span>
</span><span id="Select.join-2826"><a href="#Select.join-2826"><span class="linenos">2826</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span>
</span><span id="Select.join-2827"><a href="#Select.join-2827"><span class="linenos">2827</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;side&quot;</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
</span><span id="Select.join-2828"><a href="#Select.join-2828"><span class="linenos">2828</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span>
</span><span id="Select.join-2829"><a href="#Select.join-2829"><span class="linenos">2829</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;kind&quot;</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span>
</span><span id="Select.join-2830"><a href="#Select.join-2830"><span class="linenos">2830</span></a>
</span><span id="Select.join-2831"><a href="#Select.join-2831"><span class="linenos">2831</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span>
</span><span id="Select.join-2832"><a href="#Select.join-2832"><span class="linenos">2832</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="Select.join-2833"><a href="#Select.join-2833"><span class="linenos">2833</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;on&quot;</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span>
</span><span id="Select.join-2834"><a href="#Select.join-2834"><span class="linenos">2834</span></a>
</span><span id="Select.join-2835"><a href="#Select.join-2835"><span class="linenos">2835</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span>
</span><span id="Select.join-2836"><a href="#Select.join-2836"><span class="linenos">2836</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="Select.join-2837"><a href="#Select.join-2837"><span class="linenos">2837</span></a> <span class="o">*</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">using</span><span class="p">),</span>
</span><span id="Select.join-2838"><a href="#Select.join-2838"><span class="linenos">2838</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span>
</span><span id="Select.join-2839"><a href="#Select.join-2839"><span class="linenos">2839</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;using&quot;</span><span class="p">,</span>
</span><span id="Select.join-2840"><a href="#Select.join-2840"><span class="linenos">2840</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select.join-2841"><a href="#Select.join-2841"><span class="linenos">2841</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.join-2842"><a href="#Select.join-2842"><span class="linenos">2842</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.join-2843"><a href="#Select.join-2843"><span class="linenos">2843</span></a> <span class="p">)</span>
</span><span id="Select.join-2844"><a href="#Select.join-2844"><span class="linenos">2844</span></a>
</span><span id="Select.join-2845"><a href="#Select.join-2845"><span class="linenos">2845</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span>
</span><span id="Select.join-2846"><a href="#Select.join-2846"><span class="linenos">2846</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span>
</span><span id="Select.join-2847"><a href="#Select.join-2847"><span class="linenos">2847</span></a>
</span><span id="Select.join-2848"><a href="#Select.join-2848"><span class="linenos">2848</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="Select.join-2849"><a href="#Select.join-2849"><span class="linenos">2849</span></a> <span class="n">join</span><span class="p">,</span>
</span><span id="Select.join-2850"><a href="#Select.join-2850"><span class="linenos">2850</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.join-2851"><a href="#Select.join-2851"><span class="linenos">2851</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;joins&quot;</span><span class="p">,</span>
</span><span id="Select.join-2852"><a href="#Select.join-2852"><span class="linenos">2852</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select.join-2853"><a href="#Select.join-2853"><span class="linenos">2853</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.join-2854"><a href="#Select.join-2854"><span class="linenos">2854</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.join-2855"><a href="#Select.join-2855"><span class="linenos">2855</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Append to or set the JOIN expressions.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s2">&quot;tbl2&quot;</span><span class="p">,</span> <span class="n">on</span><span class="o">=</span><span class="s2">&quot;tbl1.y = tbl2.y&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
</code></pre>
</div>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;1&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;a&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s2">&quot;b&quot;</span><span class="p">,</span> <span class="n">using</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">,</span> <span class="s2">&quot;z&quot;</span><span class="p">])</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT 1 FROM a JOIN b USING (x, y, z)&#39;</span>
</code></pre>
</div>
<p>Use <code>join_type</code> to change the type of join:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s2">&quot;tbl2&quot;</span><span class="p">,</span> <span class="n">on</span><span class="o">=</span><span class="s2">&quot;tbl1.y = tbl2.y&quot;</span><span class="p">,</span> <span class="n">join_type</span><span class="o">=</span><span class="s2">&quot;left outer&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> the SQL code string to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>on:</strong> optionally specify the join "on" criteria as a SQL string.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>using:</strong> optionally specify the join "using" criteria as a SQL string.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.
Otherwise, this resets the expressions.</li>
<li><strong>join_type:</strong> if set, alter the parsed join type.</li>
<li><strong>join_alias:</strong> an optional alias for the joined source.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Select: the modified expression.</p>
</blockquote>
</div>
</div>
<div id="Select.where" class="classattr">
<input id="Select.where-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">where</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.where-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.where"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.where-2857"><a href="#Select.where-2857"><span class="linenos">2857</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span>
</span><span id="Select.where-2858"><a href="#Select.where-2858"><span class="linenos">2858</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select.where-2859"><a href="#Select.where-2859"><span class="linenos">2859</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select.where-2860"><a href="#Select.where-2860"><span class="linenos">2860</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.where-2861"><a href="#Select.where-2861"><span class="linenos">2861</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.where-2862"><a href="#Select.where-2862"><span class="linenos">2862</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.where-2863"><a href="#Select.where-2863"><span class="linenos">2863</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.where-2864"><a href="#Select.where-2864"><span class="linenos">2864</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.where-2865"><a href="#Select.where-2865"><span class="linenos">2865</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.where-2866"><a href="#Select.where-2866"><span class="linenos">2866</span></a><span class="sd"> Append to or set the WHERE expressions.</span>
</span><span id="Select.where-2867"><a href="#Select.where-2867"><span class="linenos">2867</span></a>
</span><span id="Select.where-2868"><a href="#Select.where-2868"><span class="linenos">2868</span></a><span class="sd"> Example:</span>
</span><span id="Select.where-2869"><a href="#Select.where-2869"><span class="linenos">2869</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;).sql()</span>
</span><span id="Select.where-2870"><a href="#Select.where-2870"><span class="linenos">2870</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
</span><span id="Select.where-2871"><a href="#Select.where-2871"><span class="linenos">2871</span></a>
</span><span id="Select.where-2872"><a href="#Select.where-2872"><span class="linenos">2872</span></a><span class="sd"> Args:</span>
</span><span id="Select.where-2873"><a href="#Select.where-2873"><span class="linenos">2873</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select.where-2874"><a href="#Select.where-2874"><span class="linenos">2874</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select.where-2875"><a href="#Select.where-2875"><span class="linenos">2875</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
</span><span id="Select.where-2876"><a href="#Select.where-2876"><span class="linenos">2876</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
</span><span id="Select.where-2877"><a href="#Select.where-2877"><span class="linenos">2877</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="Select.where-2878"><a href="#Select.where-2878"><span class="linenos">2878</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Select.where-2879"><a href="#Select.where-2879"><span class="linenos">2879</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.where-2880"><a href="#Select.where-2880"><span class="linenos">2880</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select.where-2881"><a href="#Select.where-2881"><span class="linenos">2881</span></a>
</span><span id="Select.where-2882"><a href="#Select.where-2882"><span class="linenos">2882</span></a><span class="sd"> Returns:</span>
</span><span id="Select.where-2883"><a href="#Select.where-2883"><span class="linenos">2883</span></a><span class="sd"> Select: the modified expression.</span>
</span><span id="Select.where-2884"><a href="#Select.where-2884"><span class="linenos">2884</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.where-2885"><a href="#Select.where-2885"><span class="linenos">2885</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="Select.where-2886"><a href="#Select.where-2886"><span class="linenos">2886</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select.where-2887"><a href="#Select.where-2887"><span class="linenos">2887</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.where-2888"><a href="#Select.where-2888"><span class="linenos">2888</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;where&quot;</span><span class="p">,</span>
</span><span id="Select.where-2889"><a href="#Select.where-2889"><span class="linenos">2889</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select.where-2890"><a href="#Select.where-2890"><span class="linenos">2890</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span>
</span><span id="Select.where-2891"><a href="#Select.where-2891"><span class="linenos">2891</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.where-2892"><a href="#Select.where-2892"><span class="linenos">2892</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.where-2893"><a href="#Select.where-2893"><span class="linenos">2893</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.where-2894"><a href="#Select.where-2894"><span class="linenos">2894</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Append to or set the WHERE expressions.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="s2">&quot;x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&quot;SELECT x FROM tbl WHERE x = &#39;a&#39; OR x &lt; &#39;b&#39;&quot;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.
Multiple expressions are combined with an AND operator.</li>
<li><strong>append:</strong> if <code>True</code>, AND the new expressions to any existing expression.
Otherwise, this resets the expression.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Select: the modified expression.</p>
</blockquote>
</div>
</div>
<div id="Select.having" class="classattr">
<input id="Select.having-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">having</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.having-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.having"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.having-2896"><a href="#Select.having-2896"><span class="linenos">2896</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span>
</span><span id="Select.having-2897"><a href="#Select.having-2897"><span class="linenos">2897</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select.having-2898"><a href="#Select.having-2898"><span class="linenos">2898</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select.having-2899"><a href="#Select.having-2899"><span class="linenos">2899</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.having-2900"><a href="#Select.having-2900"><span class="linenos">2900</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.having-2901"><a href="#Select.having-2901"><span class="linenos">2901</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.having-2902"><a href="#Select.having-2902"><span class="linenos">2902</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.having-2903"><a href="#Select.having-2903"><span class="linenos">2903</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.having-2904"><a href="#Select.having-2904"><span class="linenos">2904</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.having-2905"><a href="#Select.having-2905"><span class="linenos">2905</span></a><span class="sd"> Append to or set the HAVING expressions.</span>
</span><span id="Select.having-2906"><a href="#Select.having-2906"><span class="linenos">2906</span></a>
</span><span id="Select.having-2907"><a href="#Select.having-2907"><span class="linenos">2907</span></a><span class="sd"> Example:</span>
</span><span id="Select.having-2908"><a href="#Select.having-2908"><span class="linenos">2908</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;, &quot;COUNT(y)&quot;).from_(&quot;tbl&quot;).group_by(&quot;x&quot;).having(&quot;COUNT(y) &gt; 3&quot;).sql()</span>
</span><span id="Select.having-2909"><a href="#Select.having-2909"><span class="linenos">2909</span></a><span class="sd"> &#39;SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) &gt; 3&#39;</span>
</span><span id="Select.having-2910"><a href="#Select.having-2910"><span class="linenos">2910</span></a>
</span><span id="Select.having-2911"><a href="#Select.having-2911"><span class="linenos">2911</span></a><span class="sd"> Args:</span>
</span><span id="Select.having-2912"><a href="#Select.having-2912"><span class="linenos">2912</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="Select.having-2913"><a href="#Select.having-2913"><span class="linenos">2913</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select.having-2914"><a href="#Select.having-2914"><span class="linenos">2914</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span>
</span><span id="Select.having-2915"><a href="#Select.having-2915"><span class="linenos">2915</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span>
</span><span id="Select.having-2916"><a href="#Select.having-2916"><span class="linenos">2916</span></a><span class="sd"> Otherwise, this resets the expression.</span>
</span><span id="Select.having-2917"><a href="#Select.having-2917"><span class="linenos">2917</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="Select.having-2918"><a href="#Select.having-2918"><span class="linenos">2918</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.having-2919"><a href="#Select.having-2919"><span class="linenos">2919</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="Select.having-2920"><a href="#Select.having-2920"><span class="linenos">2920</span></a>
</span><span id="Select.having-2921"><a href="#Select.having-2921"><span class="linenos">2921</span></a><span class="sd"> Returns:</span>
</span><span id="Select.having-2922"><a href="#Select.having-2922"><span class="linenos">2922</span></a><span class="sd"> The modified Select expression.</span>
</span><span id="Select.having-2923"><a href="#Select.having-2923"><span class="linenos">2923</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.having-2924"><a href="#Select.having-2924"><span class="linenos">2924</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="Select.having-2925"><a href="#Select.having-2925"><span class="linenos">2925</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select.having-2926"><a href="#Select.having-2926"><span class="linenos">2926</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.having-2927"><a href="#Select.having-2927"><span class="linenos">2927</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;having&quot;</span><span class="p">,</span>
</span><span id="Select.having-2928"><a href="#Select.having-2928"><span class="linenos">2928</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select.having-2929"><a href="#Select.having-2929"><span class="linenos">2929</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span>
</span><span id="Select.having-2930"><a href="#Select.having-2930"><span class="linenos">2930</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.having-2931"><a href="#Select.having-2931"><span class="linenos">2931</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.having-2932"><a href="#Select.having-2932"><span class="linenos">2932</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.having-2933"><a href="#Select.having-2933"><span class="linenos">2933</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Append to or set the HAVING expressions.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <span class="s2">&quot;COUNT(y)&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">group_by</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">having</span><span class="p">(</span><span class="s2">&quot;COUNT(y) &gt; 3&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) &gt; 3&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.
Multiple expressions are combined with an AND operator.</li>
<li><strong>append:</strong> if <code>True</code>, AND the new expressions to any existing expression.
Otherwise, this resets the expression.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified Select expression.</p>
</blockquote>
</div>
</div>
<div id="Select.window" class="classattr">
<input id="Select.window-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">window</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.window-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.window"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.window-2935"><a href="#Select.window-2935"><span class="linenos">2935</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span>
</span><span id="Select.window-2936"><a href="#Select.window-2936"><span class="linenos">2936</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select.window-2937"><a href="#Select.window-2937"><span class="linenos">2937</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select.window-2938"><a href="#Select.window-2938"><span class="linenos">2938</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.window-2939"><a href="#Select.window-2939"><span class="linenos">2939</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.window-2940"><a href="#Select.window-2940"><span class="linenos">2940</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.window-2941"><a href="#Select.window-2941"><span class="linenos">2941</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.window-2942"><a href="#Select.window-2942"><span class="linenos">2942</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.window-2943"><a href="#Select.window-2943"><span class="linenos">2943</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="Select.window-2944"><a href="#Select.window-2944"><span class="linenos">2944</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select.window-2945"><a href="#Select.window-2945"><span class="linenos">2945</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.window-2946"><a href="#Select.window-2946"><span class="linenos">2946</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;windows&quot;</span><span class="p">,</span>
</span><span id="Select.window-2947"><a href="#Select.window-2947"><span class="linenos">2947</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select.window-2948"><a href="#Select.window-2948"><span class="linenos">2948</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span>
</span><span id="Select.window-2949"><a href="#Select.window-2949"><span class="linenos">2949</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.window-2950"><a href="#Select.window-2950"><span class="linenos">2950</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.window-2951"><a href="#Select.window-2951"><span class="linenos">2951</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.window-2952"><a href="#Select.window-2952"><span class="linenos">2952</span></a> <span class="p">)</span>
</span></pre></div>
</div>
<div id="Select.qualify" class="classattr">
<input id="Select.qualify-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">qualify</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.qualify-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.qualify"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.qualify-2954"><a href="#Select.qualify-2954"><span class="linenos">2954</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span>
</span><span id="Select.qualify-2955"><a href="#Select.qualify-2955"><span class="linenos">2955</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select.qualify-2956"><a href="#Select.qualify-2956"><span class="linenos">2956</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span>
</span><span id="Select.qualify-2957"><a href="#Select.qualify-2957"><span class="linenos">2957</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.qualify-2958"><a href="#Select.qualify-2958"><span class="linenos">2958</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.qualify-2959"><a href="#Select.qualify-2959"><span class="linenos">2959</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.qualify-2960"><a href="#Select.qualify-2960"><span class="linenos">2960</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.qualify-2961"><a href="#Select.qualify-2961"><span class="linenos">2961</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.qualify-2962"><a href="#Select.qualify-2962"><span class="linenos">2962</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span>
</span><span id="Select.qualify-2963"><a href="#Select.qualify-2963"><span class="linenos">2963</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span>
</span><span id="Select.qualify-2964"><a href="#Select.qualify-2964"><span class="linenos">2964</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span>
</span><span id="Select.qualify-2965"><a href="#Select.qualify-2965"><span class="linenos">2965</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;qualify&quot;</span><span class="p">,</span>
</span><span id="Select.qualify-2966"><a href="#Select.qualify-2966"><span class="linenos">2966</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span>
</span><span id="Select.qualify-2967"><a href="#Select.qualify-2967"><span class="linenos">2967</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span>
</span><span id="Select.qualify-2968"><a href="#Select.qualify-2968"><span class="linenos">2968</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.qualify-2969"><a href="#Select.qualify-2969"><span class="linenos">2969</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="Select.qualify-2970"><a href="#Select.qualify-2970"><span class="linenos">2970</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.qualify-2971"><a href="#Select.qualify-2971"><span class="linenos">2971</span></a> <span class="p">)</span>
</span></pre></div>
</div>
<div id="Select.distinct" class="classattr">
<input id="Select.distinct-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">distinct</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.distinct-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.distinct"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.distinct-2973"><a href="#Select.distinct-2973"><span class="linenos">2973</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span>
</span><span id="Select.distinct-2974"><a href="#Select.distinct-2974"><span class="linenos">2974</span></a> <span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">ons</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="Select.distinct-2975"><a href="#Select.distinct-2975"><span class="linenos">2975</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.distinct-2976"><a href="#Select.distinct-2976"><span class="linenos">2976</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.distinct-2977"><a href="#Select.distinct-2977"><span class="linenos">2977</span></a><span class="sd"> Set the OFFSET expression.</span>
</span><span id="Select.distinct-2978"><a href="#Select.distinct-2978"><span class="linenos">2978</span></a>
</span><span id="Select.distinct-2979"><a href="#Select.distinct-2979"><span class="linenos">2979</span></a><span class="sd"> Example:</span>
</span><span id="Select.distinct-2980"><a href="#Select.distinct-2980"><span class="linenos">2980</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;x&quot;).distinct().sql()</span>
</span><span id="Select.distinct-2981"><a href="#Select.distinct-2981"><span class="linenos">2981</span></a><span class="sd"> &#39;SELECT DISTINCT x FROM tbl&#39;</span>
</span><span id="Select.distinct-2982"><a href="#Select.distinct-2982"><span class="linenos">2982</span></a>
</span><span id="Select.distinct-2983"><a href="#Select.distinct-2983"><span class="linenos">2983</span></a><span class="sd"> Args:</span>
</span><span id="Select.distinct-2984"><a href="#Select.distinct-2984"><span class="linenos">2984</span></a><span class="sd"> ons: the expressions to distinct on</span>
</span><span id="Select.distinct-2985"><a href="#Select.distinct-2985"><span class="linenos">2985</span></a><span class="sd"> distinct: whether the Select should be distinct</span>
</span><span id="Select.distinct-2986"><a href="#Select.distinct-2986"><span class="linenos">2986</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.distinct-2987"><a href="#Select.distinct-2987"><span class="linenos">2987</span></a>
</span><span id="Select.distinct-2988"><a href="#Select.distinct-2988"><span class="linenos">2988</span></a><span class="sd"> Returns:</span>
</span><span id="Select.distinct-2989"><a href="#Select.distinct-2989"><span class="linenos">2989</span></a><span class="sd"> Select: the modified expression.</span>
</span><span id="Select.distinct-2990"><a href="#Select.distinct-2990"><span class="linenos">2990</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.distinct-2991"><a href="#Select.distinct-2991"><span class="linenos">2991</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="Select.distinct-2992"><a href="#Select.distinct-2992"><span class="linenos">2992</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">on</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">on</span> <span class="ow">in</span> <span class="n">ons</span> <span class="k">if</span> <span class="n">on</span><span class="p">])</span> <span class="k">if</span> <span class="n">ons</span> <span class="k">else</span> <span class="kc">None</span>
</span><span id="Select.distinct-2993"><a href="#Select.distinct-2993"><span class="linenos">2993</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;distinct&quot;</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">(</span><span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">)</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="Select.distinct-2994"><a href="#Select.distinct-2994"><span class="linenos">2994</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
<div class="docstring"><p>Set the OFFSET expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">distinct</span><span class="p">()</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT DISTINCT x FROM tbl&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>ons:</strong> the expressions to distinct on</li>
<li><strong>distinct:</strong> whether the Select should be distinct</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Select: the modified expression.</p>
</blockquote>
</div>
</div>
<div id="Select.ctas" class="classattr">
<input id="Select.ctas-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">ctas</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">table</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">properties</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Create">sqlglot.expressions.Create</a></span>:</span></span>
<label class="view-source-button" for="Select.ctas-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.ctas"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.ctas-2996"><a href="#Select.ctas-2996"><span class="linenos">2996</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span>
</span><span id="Select.ctas-2997"><a href="#Select.ctas-2997"><span class="linenos">2997</span></a> <span class="bp">self</span><span class="p">,</span>
</span><span id="Select.ctas-2998"><a href="#Select.ctas-2998"><span class="linenos">2998</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="Select.ctas-2999"><a href="#Select.ctas-2999"><span class="linenos">2999</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.ctas-3000"><a href="#Select.ctas-3000"><span class="linenos">3000</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="Select.ctas-3001"><a href="#Select.ctas-3001"><span class="linenos">3001</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Select.ctas-3002"><a href="#Select.ctas-3002"><span class="linenos">3002</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.ctas-3003"><a href="#Select.ctas-3003"><span class="linenos">3003</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Create</span><span class="p">:</span>
</span><span id="Select.ctas-3004"><a href="#Select.ctas-3004"><span class="linenos">3004</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.ctas-3005"><a href="#Select.ctas-3005"><span class="linenos">3005</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span>
</span><span id="Select.ctas-3006"><a href="#Select.ctas-3006"><span class="linenos">3006</span></a>
</span><span id="Select.ctas-3007"><a href="#Select.ctas-3007"><span class="linenos">3007</span></a><span class="sd"> Example:</span>
</span><span id="Select.ctas-3008"><a href="#Select.ctas-3008"><span class="linenos">3008</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;*&quot;).from_(&quot;tbl&quot;).ctas(&quot;x&quot;).sql()</span>
</span><span id="Select.ctas-3009"><a href="#Select.ctas-3009"><span class="linenos">3009</span></a><span class="sd"> &#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
</span><span id="Select.ctas-3010"><a href="#Select.ctas-3010"><span class="linenos">3010</span></a>
</span><span id="Select.ctas-3011"><a href="#Select.ctas-3011"><span class="linenos">3011</span></a><span class="sd"> Args:</span>
</span><span id="Select.ctas-3012"><a href="#Select.ctas-3012"><span class="linenos">3012</span></a><span class="sd"> table: the SQL code string to parse as the table name.</span>
</span><span id="Select.ctas-3013"><a href="#Select.ctas-3013"><span class="linenos">3013</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span>
</span><span id="Select.ctas-3014"><a href="#Select.ctas-3014"><span class="linenos">3014</span></a><span class="sd"> properties: an optional mapping of table properties</span>
</span><span id="Select.ctas-3015"><a href="#Select.ctas-3015"><span class="linenos">3015</span></a><span class="sd"> dialect: the dialect used to parse the input table.</span>
</span><span id="Select.ctas-3016"><a href="#Select.ctas-3016"><span class="linenos">3016</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.ctas-3017"><a href="#Select.ctas-3017"><span class="linenos">3017</span></a><span class="sd"> opts: other options to use to parse the input table.</span>
</span><span id="Select.ctas-3018"><a href="#Select.ctas-3018"><span class="linenos">3018</span></a>
</span><span id="Select.ctas-3019"><a href="#Select.ctas-3019"><span class="linenos">3019</span></a><span class="sd"> Returns:</span>
</span><span id="Select.ctas-3020"><a href="#Select.ctas-3020"><span class="linenos">3020</span></a><span class="sd"> The new Create expression.</span>
</span><span id="Select.ctas-3021"><a href="#Select.ctas-3021"><span class="linenos">3021</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.ctas-3022"><a href="#Select.ctas-3022"><span class="linenos">3022</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="Select.ctas-3023"><a href="#Select.ctas-3023"><span class="linenos">3023</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span>
</span><span id="Select.ctas-3024"><a href="#Select.ctas-3024"><span class="linenos">3024</span></a> <span class="n">table</span><span class="p">,</span>
</span><span id="Select.ctas-3025"><a href="#Select.ctas-3025"><span class="linenos">3025</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span>
</span><span id="Select.ctas-3026"><a href="#Select.ctas-3026"><span class="linenos">3026</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="Select.ctas-3027"><a href="#Select.ctas-3027"><span class="linenos">3027</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="Select.ctas-3028"><a href="#Select.ctas-3028"><span class="linenos">3028</span></a> <span class="p">)</span>
</span><span id="Select.ctas-3029"><a href="#Select.ctas-3029"><span class="linenos">3029</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span>
</span><span id="Select.ctas-3030"><a href="#Select.ctas-3030"><span class="linenos">3030</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span>
</span><span id="Select.ctas-3031"><a href="#Select.ctas-3031"><span class="linenos">3031</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span>
</span><span id="Select.ctas-3032"><a href="#Select.ctas-3032"><span class="linenos">3032</span></a>
</span><span id="Select.ctas-3033"><a href="#Select.ctas-3033"><span class="linenos">3033</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span>
</span><span id="Select.ctas-3034"><a href="#Select.ctas-3034"><span class="linenos">3034</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span>
</span><span id="Select.ctas-3035"><a href="#Select.ctas-3035"><span class="linenos">3035</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">&quot;table&quot;</span><span class="p">,</span>
</span><span id="Select.ctas-3036"><a href="#Select.ctas-3036"><span class="linenos">3036</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span>
</span><span id="Select.ctas-3037"><a href="#Select.ctas-3037"><span class="linenos">3037</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span>
</span><span id="Select.ctas-3038"><a href="#Select.ctas-3038"><span class="linenos">3038</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Convert this expression to a CREATE TABLE AS statement.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">ctas</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;CREATE TABLE x AS SELECT * FROM tbl&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>table:</strong> the SQL code string to parse as the table name.
If another <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>properties:</strong> an optional mapping of table properties</li>
<li><strong>dialect:</strong> the dialect used to parse the input table.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
<li><strong>opts:</strong> other options to use to parse the input table.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new Create expression.</p>
</blockquote>
</div>
</div>
<div id="Select.lock" class="classattr">
<input id="Select.lock-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">lock</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="Select.lock-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Select.lock"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Select.lock-3040"><a href="#Select.lock-3040"><span class="linenos">3040</span></a> <span class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="Select.lock-3041"><a href="#Select.lock-3041"><span class="linenos">3041</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Select.lock-3042"><a href="#Select.lock-3042"><span class="linenos">3042</span></a><span class="sd"> Set the locking read mode for this expression.</span>
</span><span id="Select.lock-3043"><a href="#Select.lock-3043"><span class="linenos">3043</span></a>
</span><span id="Select.lock-3044"><a href="#Select.lock-3044"><span class="linenos">3044</span></a><span class="sd"> Examples:</span>
</span><span id="Select.lock-3045"><a href="#Select.lock-3045"><span class="linenos">3045</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock().sql(&quot;mysql&quot;)</span>
</span><span id="Select.lock-3046"><a href="#Select.lock-3046"><span class="linenos">3046</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
</span><span id="Select.lock-3047"><a href="#Select.lock-3047"><span class="linenos">3047</span></a>
</span><span id="Select.lock-3048"><a href="#Select.lock-3048"><span class="linenos">3048</span></a><span class="sd"> &gt;&gt;&gt; Select().select(&quot;x&quot;).from_(&quot;tbl&quot;).where(&quot;x = &#39;a&#39;&quot;).lock(update=False).sql(&quot;mysql&quot;)</span>
</span><span id="Select.lock-3049"><a href="#Select.lock-3049"><span class="linenos">3049</span></a><span class="sd"> &quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
</span><span id="Select.lock-3050"><a href="#Select.lock-3050"><span class="linenos">3050</span></a>
</span><span id="Select.lock-3051"><a href="#Select.lock-3051"><span class="linenos">3051</span></a><span class="sd"> Args:</span>
</span><span id="Select.lock-3052"><a href="#Select.lock-3052"><span class="linenos">3052</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span>
</span><span id="Select.lock-3053"><a href="#Select.lock-3053"><span class="linenos">3053</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span>
</span><span id="Select.lock-3054"><a href="#Select.lock-3054"><span class="linenos">3054</span></a>
</span><span id="Select.lock-3055"><a href="#Select.lock-3055"><span class="linenos">3055</span></a><span class="sd"> Returns:</span>
</span><span id="Select.lock-3056"><a href="#Select.lock-3056"><span class="linenos">3056</span></a><span class="sd"> The modified expression.</span>
</span><span id="Select.lock-3057"><a href="#Select.lock-3057"><span class="linenos">3057</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Select.lock-3058"><a href="#Select.lock-3058"><span class="linenos">3058</span></a>
</span><span id="Select.lock-3059"><a href="#Select.lock-3059"><span class="linenos">3059</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="Select.lock-3060"><a href="#Select.lock-3060"><span class="linenos">3060</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;locks&quot;</span><span class="p">,</span> <span class="p">[</span><span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">)])</span>
</span><span id="Select.lock-3061"><a href="#Select.lock-3061"><span class="linenos">3061</span></a>
</span><span id="Select.lock-3062"><a href="#Select.lock-3062"><span class="linenos">3062</span></a> <span class="k">return</span> <span class="n">inst</span>
</span></pre></div>
<div class="docstring"><p>Set the locking read mode for this expression.</p>
<h6 id="examples">Examples:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="s2">&quot;x = &#39;a&#39;&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">lock</span><span class="p">()</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="s2">&quot;mysql&quot;</span><span class="p">)</span>
<span class="go">&quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR UPDATE&quot;</span>
</code></pre>
</div>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="s2">&quot;x = &#39;a&#39;&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="s2">&quot;mysql&quot;</span><span class="p">)</span>
<span class="go">&quot;SELECT x FROM tbl WHERE x = &#39;a&#39; FOR SHARE&quot;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>update:</strong> if <code>True</code>, the locking type will be <code>FOR UPDATE</code>, else it will be <code>FOR SHARE</code>.</li>
<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The modified expression.</p>
</blockquote>
</div>
</div>
<div id="Select.is_star" class="classattr">
<div class="attr variable">
<span class="name">is_star</span><span class="annotation">: bool</span>
</div>
<a class="headerlink" href="#Select.is_star"></a>
<div class="docstring"><p>Checks whether an expression is a star.</p>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Select.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Select.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Select.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Select.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Select.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Select.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Select.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Select.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Select.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Select.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Select.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Select.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Select.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Select.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Select.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Select.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Select.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Select.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Select.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Select.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Select.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Select.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Select.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Select.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Select.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Select.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Select.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Select.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Select.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Select.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Select.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Select.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Select.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Select.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Select.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Select.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Select.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Subqueryable">Subqueryable</a></dt>
<dd id="Select.subquery" class="function"><a href="#Subqueryable.subquery">subquery</a></dd>
<dd id="Select.with_" class="function"><a href="#Subqueryable.with_">with_</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
<dd id="Select.union" class="function"><a href="#Unionable.union">union</a></dd>
<dd id="Select.intersect" class="function"><a href="#Unionable.intersect">intersect</a></dd>
<dd id="Select.except_" class="function"><a href="#Unionable.except_">except_</a></dd>
</div>
</dl>
</div>
</section>
<section id="Subquery">
<input id="Subquery-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Subquery</span><wbr>(<span class="base"><a href="#DerivedTable">DerivedTable</a></span>, <span class="base"><a href="#Unionable">Unionable</a></span>):
<label class="view-source-button" for="Subquery-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Subquery"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Subquery-3077"><a href="#Subquery-3077"><span class="linenos">3077</span></a><span class="k">class</span> <span class="nc">Subquery</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</span><span class="p">):</span>
</span><span id="Subquery-3078"><a href="#Subquery-3078"><span class="linenos">3078</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Subquery-3079"><a href="#Subquery-3079"><span class="linenos">3079</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Subquery-3080"><a href="#Subquery-3080"><span class="linenos">3080</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Subquery-3081"><a href="#Subquery-3081"><span class="linenos">3081</span></a> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Subquery-3082"><a href="#Subquery-3082"><span class="linenos">3082</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span>
</span><span id="Subquery-3083"><a href="#Subquery-3083"><span class="linenos">3083</span></a> <span class="p">}</span>
</span><span id="Subquery-3084"><a href="#Subquery-3084"><span class="linenos">3084</span></a>
</span><span id="Subquery-3085"><a href="#Subquery-3085"><span class="linenos">3085</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Subquery-3086"><a href="#Subquery-3086"><span class="linenos">3086</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Subquery-3087"><a href="#Subquery-3087"><span class="linenos">3087</span></a><span class="sd"> Returns the first non subquery.</span>
</span><span id="Subquery-3088"><a href="#Subquery-3088"><span class="linenos">3088</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Subquery-3089"><a href="#Subquery-3089"><span class="linenos">3089</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
</span><span id="Subquery-3090"><a href="#Subquery-3090"><span class="linenos">3090</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span>
</span><span id="Subquery-3091"><a href="#Subquery-3091"><span class="linenos">3091</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
</span><span id="Subquery-3092"><a href="#Subquery-3092"><span class="linenos">3092</span></a> <span class="k">return</span> <span class="n">expression</span>
</span><span id="Subquery-3093"><a href="#Subquery-3093"><span class="linenos">3093</span></a>
</span><span id="Subquery-3094"><a href="#Subquery-3094"><span class="linenos">3094</span></a> <span class="nd">@property</span>
</span><span id="Subquery-3095"><a href="#Subquery-3095"><span class="linenos">3095</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="Subquery-3096"><a href="#Subquery-3096"><span class="linenos">3096</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span>
</span><span id="Subquery-3097"><a href="#Subquery-3097"><span class="linenos">3097</span></a>
</span><span id="Subquery-3098"><a href="#Subquery-3098"><span class="linenos">3098</span></a> <span class="nd">@property</span>
</span><span id="Subquery-3099"><a href="#Subquery-3099"><span class="linenos">3099</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Subquery-3100"><a href="#Subquery-3100"><span class="linenos">3100</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span></pre></div>
<div id="Subquery.unnest" class="classattr">
<input id="Subquery.unnest-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">unnest</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Subquery.unnest-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Subquery.unnest"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unnest-3085"><a href="#Subquery.unnest-3085"><span class="linenos">3085</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Subquery.unnest-3086"><a href="#Subquery.unnest-3086"><span class="linenos">3086</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Subquery.unnest-3087"><a href="#Subquery.unnest-3087"><span class="linenos">3087</span></a><span class="sd"> Returns the first non subquery.</span>
</span><span id="Subquery.unnest-3088"><a href="#Subquery.unnest-3088"><span class="linenos">3088</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Subquery.unnest-3089"><a href="#Subquery.unnest-3089"><span class="linenos">3089</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span>
</span><span id="Subquery.unnest-3090"><a href="#Subquery.unnest-3090"><span class="linenos">3090</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span>
</span><span id="Subquery.unnest-3091"><a href="#Subquery.unnest-3091"><span class="linenos">3091</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span>
</span><span id="Subquery.unnest-3092"><a href="#Subquery.unnest-3092"><span class="linenos">3092</span></a> <span class="k">return</span> <span class="n">expression</span>
</span></pre></div>
<div class="docstring"><p>Returns the first non subquery.</p>
</div>
</div>
<div id="Subquery.is_star" class="classattr">
<div class="attr variable">
<span class="name">is_star</span><span class="annotation">: bool</span>
</div>
<a class="headerlink" href="#Subquery.is_star"></a>
<div class="docstring"><p>Checks whether an expression is a star.</p>
</div>
</div>
<div id="Subquery.output_name" class="classattr">
<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
</div>
<a class="headerlink" href="#Subquery.output_name"></a>
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT a&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;a&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT b AS c&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;c&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT 1 + 2&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;&#39;</span>
</code></pre>
</div>
</blockquote>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Subquery.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Subquery.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Subquery.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Subquery.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Subquery.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Subquery.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Subquery.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Subquery.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Subquery.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Subquery.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Subquery.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Subquery.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Subquery.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Subquery.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Subquery.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Subquery.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Subquery.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Subquery.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Subquery.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Subquery.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Subquery.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Subquery.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Subquery.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Subquery.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Subquery.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Subquery.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Subquery.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Subquery.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Subquery.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Subquery.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Subquery.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Subquery.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Subquery.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Subquery.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Subquery.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Unionable">Unionable</a></dt>
<dd id="Subquery.union" class="function"><a href="#Unionable.union">union</a></dd>
<dd id="Subquery.intersect" class="function"><a href="#Unionable.intersect">intersect</a></dd>
<dd id="Subquery.except_" class="function"><a href="#Unionable.except_">except_</a></dd>
</div>
</dl>
</div>
</section>
<section id="TableSample">
<input id="TableSample-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TableSample</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="TableSample-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TableSample"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TableSample-3103"><a href="#TableSample-3103"><span class="linenos">3103</span></a><span class="k">class</span> <span class="nc">TableSample</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="TableSample-3104"><a href="#TableSample-3104"><span class="linenos">3104</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="TableSample-3105"><a href="#TableSample-3105"><span class="linenos">3105</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="TableSample-3106"><a href="#TableSample-3106"><span class="linenos">3106</span></a> <span class="s2">&quot;method&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="TableSample-3107"><a href="#TableSample-3107"><span class="linenos">3107</span></a> <span class="s2">&quot;bucket_numerator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="TableSample-3108"><a href="#TableSample-3108"><span class="linenos">3108</span></a> <span class="s2">&quot;bucket_denominator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="TableSample-3109"><a href="#TableSample-3109"><span class="linenos">3109</span></a> <span class="s2">&quot;bucket_field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="TableSample-3110"><a href="#TableSample-3110"><span class="linenos">3110</span></a> <span class="s2">&quot;percent&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="TableSample-3111"><a href="#TableSample-3111"><span class="linenos">3111</span></a> <span class="s2">&quot;rows&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="TableSample-3112"><a href="#TableSample-3112"><span class="linenos">3112</span></a> <span class="s2">&quot;size&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="TableSample-3113"><a href="#TableSample-3113"><span class="linenos">3113</span></a> <span class="s2">&quot;seed&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="TableSample-3114"><a href="#TableSample-3114"><span class="linenos">3114</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="TableSample-3115"><a href="#TableSample-3115"><span class="linenos">3115</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TableSample.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TableSample.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TableSample.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TableSample.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TableSample.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TableSample.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TableSample.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TableSample.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TableSample.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TableSample.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TableSample.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TableSample.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TableSample.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TableSample.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TableSample.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TableSample.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TableSample.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TableSample.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TableSample.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TableSample.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TableSample.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TableSample.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TableSample.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TableSample.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TableSample.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TableSample.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TableSample.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TableSample.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TableSample.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TableSample.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TableSample.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TableSample.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TableSample.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TableSample.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TableSample.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TableSample.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TableSample.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TableSample.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Tag">
<input id="Tag-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Tag</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Tag-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Tag"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Tag-3118"><a href="#Tag-3118"><span class="linenos">3118</span></a><span class="k">class</span> <span class="nc">Tag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Tag-3119"><a href="#Tag-3119"><span class="linenos">3119</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Tags are used for generating arbitrary sql like SELECT &lt;span&gt;x&lt;/span&gt;.&quot;&quot;&quot;</span>
</span><span id="Tag-3120"><a href="#Tag-3120"><span class="linenos">3120</span></a>
</span><span id="Tag-3121"><a href="#Tag-3121"><span class="linenos">3121</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Tag-3122"><a href="#Tag-3122"><span class="linenos">3122</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Tag-3123"><a href="#Tag-3123"><span class="linenos">3123</span></a> <span class="s2">&quot;prefix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Tag-3124"><a href="#Tag-3124"><span class="linenos">3124</span></a> <span class="s2">&quot;postfix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Tag-3125"><a href="#Tag-3125"><span class="linenos">3125</span></a> <span class="p">}</span>
</span></pre></div>
<div class="docstring"><p>Tags are used for generating arbitrary sql like SELECT <span>x</span>.</p>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Tag.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Tag.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Tag.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Tag.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Tag.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Tag.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Tag.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Tag.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Tag.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Tag.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Tag.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Tag.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Tag.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Tag.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Tag.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Tag.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Tag.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Tag.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Tag.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Tag.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Tag.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Tag.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Tag.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Tag.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Tag.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Tag.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Tag.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Tag.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Tag.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Tag.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Tag.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Tag.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Tag.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Tag.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Tag.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Tag.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Tag.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Tag.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Pivot">
<input id="Pivot-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Pivot</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Pivot-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Pivot"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Pivot-3128"><a href="#Pivot-3128"><span class="linenos">3128</span></a><span class="k">class</span> <span class="nc">Pivot</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Pivot-3129"><a href="#Pivot-3129"><span class="linenos">3129</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Pivot-3130"><a href="#Pivot-3130"><span class="linenos">3130</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Pivot-3131"><a href="#Pivot-3131"><span class="linenos">3131</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Pivot-3132"><a href="#Pivot-3132"><span class="linenos">3132</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Pivot-3133"><a href="#Pivot-3133"><span class="linenos">3133</span></a> <span class="s2">&quot;unpivot&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Pivot-3134"><a href="#Pivot-3134"><span class="linenos">3134</span></a> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Pivot-3135"><a href="#Pivot-3135"><span class="linenos">3135</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Pivot.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Pivot.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Pivot.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Pivot.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Pivot.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Pivot.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Pivot.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Pivot.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Pivot.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Pivot.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Pivot.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Pivot.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Pivot.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Pivot.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Pivot.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Pivot.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Pivot.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Pivot.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Pivot.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Pivot.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Pivot.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Pivot.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Pivot.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Pivot.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Pivot.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Pivot.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Pivot.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Pivot.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Pivot.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Pivot.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Pivot.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Pivot.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Pivot.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Pivot.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Pivot.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Pivot.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Pivot.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Pivot.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Window">
<input id="Window-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Window</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Window-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Window"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Window-3138"><a href="#Window-3138"><span class="linenos">3138</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Window-3139"><a href="#Window-3139"><span class="linenos">3139</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Window-3140"><a href="#Window-3140"><span class="linenos">3140</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Window-3141"><a href="#Window-3141"><span class="linenos">3141</span></a> <span class="s2">&quot;partition_by&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Window-3142"><a href="#Window-3142"><span class="linenos">3142</span></a> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Window-3143"><a href="#Window-3143"><span class="linenos">3143</span></a> <span class="s2">&quot;spec&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Window-3144"><a href="#Window-3144"><span class="linenos">3144</span></a> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Window-3145"><a href="#Window-3145"><span class="linenos">3145</span></a> <span class="s2">&quot;over&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Window-3146"><a href="#Window-3146"><span class="linenos">3146</span></a> <span class="s2">&quot;first&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Window-3147"><a href="#Window-3147"><span class="linenos">3147</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Window.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Window.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Window.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Window.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Window.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Window.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Window.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Window.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Window.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Window.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Window.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Window.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Window.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Window.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Window.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Window.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Window.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Window.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Window.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Window.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Window.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Window.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Window.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Window.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Window.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Window.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Window.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Window.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Window.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Window.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Window.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Window.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Window.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Window.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Window.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Window.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Window.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Window.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="WindowSpec">
<input id="WindowSpec-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">WindowSpec</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="WindowSpec-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#WindowSpec"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="WindowSpec-3150"><a href="#WindowSpec-3150"><span class="linenos">3150</span></a><span class="k">class</span> <span class="nc">WindowSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="WindowSpec-3151"><a href="#WindowSpec-3151"><span class="linenos">3151</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="WindowSpec-3152"><a href="#WindowSpec-3152"><span class="linenos">3152</span></a> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="WindowSpec-3153"><a href="#WindowSpec-3153"><span class="linenos">3153</span></a> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="WindowSpec-3154"><a href="#WindowSpec-3154"><span class="linenos">3154</span></a> <span class="s2">&quot;start_side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="WindowSpec-3155"><a href="#WindowSpec-3155"><span class="linenos">3155</span></a> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="WindowSpec-3156"><a href="#WindowSpec-3156"><span class="linenos">3156</span></a> <span class="s2">&quot;end_side&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="WindowSpec-3157"><a href="#WindowSpec-3157"><span class="linenos">3157</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="WindowSpec.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="WindowSpec.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="WindowSpec.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="WindowSpec.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="WindowSpec.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="WindowSpec.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="WindowSpec.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="WindowSpec.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="WindowSpec.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="WindowSpec.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="WindowSpec.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="WindowSpec.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="WindowSpec.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="WindowSpec.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="WindowSpec.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="WindowSpec.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="WindowSpec.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="WindowSpec.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="WindowSpec.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="WindowSpec.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="WindowSpec.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="WindowSpec.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="WindowSpec.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="WindowSpec.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="WindowSpec.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="WindowSpec.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="WindowSpec.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="WindowSpec.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="WindowSpec.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="WindowSpec.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="WindowSpec.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="WindowSpec.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="WindowSpec.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="WindowSpec.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="WindowSpec.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="WindowSpec.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="WindowSpec.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="WindowSpec.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Where">
<input id="Where-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Where</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Where-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Where"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Where-3160"><a href="#Where-3160"><span class="linenos">3160</span></a><span class="k">class</span> <span class="nc">Where</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Where-3161"><a href="#Where-3161"><span class="linenos">3161</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Where.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Where.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Where.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Where.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Where.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Where.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Where.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Where.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Where.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Where.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Where.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Where.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Where.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Where.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Where.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Where.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Where.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Where.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Where.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Where.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Where.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Where.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Where.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Where.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Where.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Where.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Where.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Where.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Where.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Where.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Where.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Where.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Where.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Where.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Where.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Where.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Where.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Where.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Star">
<input id="Star-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Star</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Star-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Star"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Star-3164"><a href="#Star-3164"><span class="linenos">3164</span></a><span class="k">class</span> <span class="nc">Star</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Star-3165"><a href="#Star-3165"><span class="linenos">3165</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;except&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;replace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Star-3166"><a href="#Star-3166"><span class="linenos">3166</span></a>
</span><span id="Star-3167"><a href="#Star-3167"><span class="linenos">3167</span></a> <span class="nd">@property</span>
</span><span id="Star-3168"><a href="#Star-3168"><span class="linenos">3168</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Star-3169"><a href="#Star-3169"><span class="linenos">3169</span></a> <span class="k">return</span> <span class="s2">&quot;*&quot;</span>
</span><span id="Star-3170"><a href="#Star-3170"><span class="linenos">3170</span></a>
</span><span id="Star-3171"><a href="#Star-3171"><span class="linenos">3171</span></a> <span class="nd">@property</span>
</span><span id="Star-3172"><a href="#Star-3172"><span class="linenos">3172</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Star-3173"><a href="#Star-3173"><span class="linenos">3173</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span></pre></div>
<div id="Star.output_name" class="classattr">
<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
</div>
<a class="headerlink" href="#Star.output_name"></a>
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT a&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;a&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT b AS c&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;c&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT 1 + 2&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;&#39;</span>
</code></pre>
</div>
</blockquote>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Star.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Star.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Star.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Star.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Star.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Star.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Star.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Star.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Star.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Star.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Star.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Star.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Star.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Star.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Star.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Star.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Star.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Star.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Star.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Star.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Star.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Star.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Star.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Star.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Star.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Star.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Star.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Star.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Star.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Star.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Star.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Star.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Star.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Star.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Star.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Star.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Star.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Parameter">
<input id="Parameter-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Parameter</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Parameter-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Parameter"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Parameter-3176"><a href="#Parameter-3176"><span class="linenos">3176</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Parameter-3177"><a href="#Parameter-3177"><span class="linenos">3177</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;wrapped&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Parameter.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Parameter.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Parameter.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Parameter.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Parameter.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Parameter.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Parameter.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Parameter.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Parameter.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Parameter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Parameter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Parameter.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Parameter.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Parameter.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Parameter.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Parameter.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Parameter.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Parameter.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Parameter.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Parameter.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Parameter.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Parameter.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Parameter.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Parameter.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Parameter.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Parameter.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Parameter.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Parameter.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Parameter.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Parameter.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Parameter.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Parameter.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Parameter.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Parameter.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Parameter.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Parameter.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Parameter.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Parameter.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="SessionParameter">
<input id="SessionParameter-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SessionParameter</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="SessionParameter-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SessionParameter"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SessionParameter-3180"><a href="#SessionParameter-3180"><span class="linenos">3180</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="SessionParameter-3181"><a href="#SessionParameter-3181"><span class="linenos">3181</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SessionParameter.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SessionParameter.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SessionParameter.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SessionParameter.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SessionParameter.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SessionParameter.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SessionParameter.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SessionParameter.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SessionParameter.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SessionParameter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SessionParameter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SessionParameter.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SessionParameter.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SessionParameter.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SessionParameter.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SessionParameter.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SessionParameter.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SessionParameter.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SessionParameter.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SessionParameter.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SessionParameter.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SessionParameter.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SessionParameter.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SessionParameter.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SessionParameter.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SessionParameter.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SessionParameter.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SessionParameter.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SessionParameter.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SessionParameter.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SessionParameter.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SessionParameter.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SessionParameter.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SessionParameter.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SessionParameter.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SessionParameter.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SessionParameter.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SessionParameter.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Placeholder">
<input id="Placeholder-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Placeholder</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Placeholder-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Placeholder"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Placeholder-3184"><a href="#Placeholder-3184"><span class="linenos">3184</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Placeholder-3185"><a href="#Placeholder-3185"><span class="linenos">3185</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Placeholder.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Placeholder.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Placeholder.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Placeholder.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Placeholder.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Placeholder.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Placeholder.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Placeholder.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Placeholder.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Placeholder.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Placeholder.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Placeholder.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Placeholder.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Placeholder.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Placeholder.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Placeholder.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Placeholder.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Placeholder.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Placeholder.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Placeholder.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Placeholder.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Placeholder.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Placeholder.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Placeholder.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Placeholder.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Placeholder.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Placeholder.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Placeholder.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Placeholder.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Placeholder.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Placeholder.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Placeholder.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Placeholder.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Placeholder.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Placeholder.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Placeholder.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Placeholder.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Placeholder.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Null">
<input id="Null-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Null</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
<label class="view-source-button" for="Null-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Null"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Null-3188"><a href="#Null-3188"><span class="linenos">3188</span></a><span class="k">class</span> <span class="nc">Null</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="Null-3189"><a href="#Null-3189"><span class="linenos">3189</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span><span id="Null-3190"><a href="#Null-3190"><span class="linenos">3190</span></a>
</span><span id="Null-3191"><a href="#Null-3191"><span class="linenos">3191</span></a> <span class="nd">@property</span>
</span><span id="Null-3192"><a href="#Null-3192"><span class="linenos">3192</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Null-3193"><a href="#Null-3193"><span class="linenos">3193</span></a> <span class="k">return</span> <span class="s2">&quot;NULL&quot;</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Null.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Null.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Null.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Null.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Null.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Null.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Null.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Null.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Null.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Null.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Null.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Null.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Null.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Null.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Null.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Null.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Null.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Null.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Null.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Null.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Null.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Null.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Null.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Null.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Null.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Null.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Null.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Null.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Null.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Null.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Null.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Null.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Null.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Null.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Null.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Null.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Null.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Null.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Null.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Null.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Null.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Null.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Null.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Null.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Null.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Null.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Null.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Null.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Null.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Null.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Boolean">
<input id="Boolean-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Boolean</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
<label class="view-source-button" for="Boolean-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Boolean"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Boolean-3196"><a href="#Boolean-3196"><span class="linenos">3196</span></a><span class="k">class</span> <span class="nc">Boolean</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="Boolean-3197"><a href="#Boolean-3197"><span class="linenos">3197</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Boolean.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Boolean.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Boolean.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Boolean.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Boolean.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Boolean.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Boolean.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Boolean.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Boolean.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Boolean.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Boolean.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Boolean.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Boolean.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Boolean.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Boolean.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Boolean.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Boolean.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Boolean.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Boolean.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Boolean.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Boolean.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Boolean.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Boolean.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Boolean.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Boolean.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Boolean.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Boolean.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Boolean.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Boolean.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Boolean.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Boolean.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Boolean.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Boolean.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Boolean.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Boolean.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Boolean.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Boolean.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Boolean.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Boolean.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Boolean.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Boolean.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Boolean.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Boolean.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Boolean.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Boolean.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Boolean.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Boolean.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Boolean.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Boolean.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Boolean.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="DataTypeSize">
<input id="DataTypeSize-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DataTypeSize</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="DataTypeSize-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DataTypeSize"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DataTypeSize-3200"><a href="#DataTypeSize-3200"><span class="linenos">3200</span></a><span class="k">class</span> <span class="nc">DataTypeSize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="DataTypeSize-3201"><a href="#DataTypeSize-3201"><span class="linenos">3201</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DataTypeSize.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DataTypeSize.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DataTypeSize.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DataTypeSize.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DataTypeSize.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DataTypeSize.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DataTypeSize.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DataTypeSize.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DataTypeSize.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DataTypeSize.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DataTypeSize.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DataTypeSize.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DataTypeSize.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DataTypeSize.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DataTypeSize.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DataTypeSize.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DataTypeSize.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DataTypeSize.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DataTypeSize.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DataTypeSize.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DataTypeSize.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DataTypeSize.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DataTypeSize.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DataTypeSize.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DataTypeSize.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DataTypeSize.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DataTypeSize.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DataTypeSize.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DataTypeSize.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DataTypeSize.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DataTypeSize.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DataTypeSize.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DataTypeSize.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DataTypeSize.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DataTypeSize.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DataTypeSize.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DataTypeSize.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DataTypeSize.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DataType">
<input id="DataType-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DataType</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="DataType-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DataType"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DataType-3204"><a href="#DataType-3204"><span class="linenos">3204</span></a><span class="k">class</span> <span class="nc">DataType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="DataType-3205"><a href="#DataType-3205"><span class="linenos">3205</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="DataType-3206"><a href="#DataType-3206"><span class="linenos">3206</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="DataType-3207"><a href="#DataType-3207"><span class="linenos">3207</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="DataType-3208"><a href="#DataType-3208"><span class="linenos">3208</span></a> <span class="s2">&quot;nested&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="DataType-3209"><a href="#DataType-3209"><span class="linenos">3209</span></a> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="DataType-3210"><a href="#DataType-3210"><span class="linenos">3210</span></a> <span class="s2">&quot;prefix&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="DataType-3211"><a href="#DataType-3211"><span class="linenos">3211</span></a> <span class="p">}</span>
</span><span id="DataType-3212"><a href="#DataType-3212"><span class="linenos">3212</span></a>
</span><span id="DataType-3213"><a href="#DataType-3213"><span class="linenos">3213</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
</span><span id="DataType-3214"><a href="#DataType-3214"><span class="linenos">3214</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3215"><a href="#DataType-3215"><span class="linenos">3215</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3216"><a href="#DataType-3216"><span class="linenos">3216</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3217"><a href="#DataType-3217"><span class="linenos">3217</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3218"><a href="#DataType-3218"><span class="linenos">3218</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3219"><a href="#DataType-3219"><span class="linenos">3219</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3220"><a href="#DataType-3220"><span class="linenos">3220</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3221"><a href="#DataType-3221"><span class="linenos">3221</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3222"><a href="#DataType-3222"><span class="linenos">3222</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3223"><a href="#DataType-3223"><span class="linenos">3223</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3224"><a href="#DataType-3224"><span class="linenos">3224</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3225"><a href="#DataType-3225"><span class="linenos">3225</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3226"><a href="#DataType-3226"><span class="linenos">3226</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3227"><a href="#DataType-3227"><span class="linenos">3227</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3228"><a href="#DataType-3228"><span class="linenos">3228</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3229"><a href="#DataType-3229"><span class="linenos">3229</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3230"><a href="#DataType-3230"><span class="linenos">3230</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3231"><a href="#DataType-3231"><span class="linenos">3231</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3232"><a href="#DataType-3232"><span class="linenos">3232</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3233"><a href="#DataType-3233"><span class="linenos">3233</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3234"><a href="#DataType-3234"><span class="linenos">3234</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3235"><a href="#DataType-3235"><span class="linenos">3235</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3236"><a href="#DataType-3236"><span class="linenos">3236</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3237"><a href="#DataType-3237"><span class="linenos">3237</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3238"><a href="#DataType-3238"><span class="linenos">3238</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3239"><a href="#DataType-3239"><span class="linenos">3239</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3240"><a href="#DataType-3240"><span class="linenos">3240</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3241"><a href="#DataType-3241"><span class="linenos">3241</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3242"><a href="#DataType-3242"><span class="linenos">3242</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3243"><a href="#DataType-3243"><span class="linenos">3243</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3244"><a href="#DataType-3244"><span class="linenos">3244</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3245"><a href="#DataType-3245"><span class="linenos">3245</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3246"><a href="#DataType-3246"><span class="linenos">3246</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3247"><a href="#DataType-3247"><span class="linenos">3247</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3248"><a href="#DataType-3248"><span class="linenos">3248</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3249"><a href="#DataType-3249"><span class="linenos">3249</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3250"><a href="#DataType-3250"><span class="linenos">3250</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3251"><a href="#DataType-3251"><span class="linenos">3251</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3252"><a href="#DataType-3252"><span class="linenos">3252</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3253"><a href="#DataType-3253"><span class="linenos">3253</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3254"><a href="#DataType-3254"><span class="linenos">3254</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3255"><a href="#DataType-3255"><span class="linenos">3255</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3256"><a href="#DataType-3256"><span class="linenos">3256</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3257"><a href="#DataType-3257"><span class="linenos">3257</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3258"><a href="#DataType-3258"><span class="linenos">3258</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3259"><a href="#DataType-3259"><span class="linenos">3259</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3260"><a href="#DataType-3260"><span class="linenos">3260</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3261"><a href="#DataType-3261"><span class="linenos">3261</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3262"><a href="#DataType-3262"><span class="linenos">3262</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3263"><a href="#DataType-3263"><span class="linenos">3263</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3264"><a href="#DataType-3264"><span class="linenos">3264</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3265"><a href="#DataType-3265"><span class="linenos">3265</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3266"><a href="#DataType-3266"><span class="linenos">3266</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3267"><a href="#DataType-3267"><span class="linenos">3267</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3268"><a href="#DataType-3268"><span class="linenos">3268</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span>
</span><span id="DataType-3269"><a href="#DataType-3269"><span class="linenos">3269</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3270"><a href="#DataType-3270"><span class="linenos">3270</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3271"><a href="#DataType-3271"><span class="linenos">3271</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3272"><a href="#DataType-3272"><span class="linenos">3272</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3273"><a href="#DataType-3273"><span class="linenos">3273</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3274"><a href="#DataType-3274"><span class="linenos">3274</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3275"><a href="#DataType-3275"><span class="linenos">3275</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3276"><a href="#DataType-3276"><span class="linenos">3276</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType-3277"><a href="#DataType-3277"><span class="linenos">3277</span></a>
</span><span id="DataType-3278"><a href="#DataType-3278"><span class="linenos">3278</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="DataType-3279"><a href="#DataType-3279"><span class="linenos">3279</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span>
</span><span id="DataType-3280"><a href="#DataType-3280"><span class="linenos">3280</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span>
</span><span id="DataType-3281"><a href="#DataType-3281"><span class="linenos">3281</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span>
</span><span id="DataType-3282"><a href="#DataType-3282"><span class="linenos">3282</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span>
</span><span id="DataType-3283"><a href="#DataType-3283"><span class="linenos">3283</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span>
</span><span id="DataType-3284"><a href="#DataType-3284"><span class="linenos">3284</span></a> <span class="p">}</span>
</span><span id="DataType-3285"><a href="#DataType-3285"><span class="linenos">3285</span></a>
</span><span id="DataType-3286"><a href="#DataType-3286"><span class="linenos">3286</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="DataType-3287"><a href="#DataType-3287"><span class="linenos">3287</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span>
</span><span id="DataType-3288"><a href="#DataType-3288"><span class="linenos">3288</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span>
</span><span id="DataType-3289"><a href="#DataType-3289"><span class="linenos">3289</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span>
</span><span id="DataType-3290"><a href="#DataType-3290"><span class="linenos">3290</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span>
</span><span id="DataType-3291"><a href="#DataType-3291"><span class="linenos">3291</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT128</span><span class="p">,</span>
</span><span id="DataType-3292"><a href="#DataType-3292"><span class="linenos">3292</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT256</span><span class="p">,</span>
</span><span id="DataType-3293"><a href="#DataType-3293"><span class="linenos">3293</span></a> <span class="p">}</span>
</span><span id="DataType-3294"><a href="#DataType-3294"><span class="linenos">3294</span></a>
</span><span id="DataType-3295"><a href="#DataType-3295"><span class="linenos">3295</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="DataType-3296"><a href="#DataType-3296"><span class="linenos">3296</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span>
</span><span id="DataType-3297"><a href="#DataType-3297"><span class="linenos">3297</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span>
</span><span id="DataType-3298"><a href="#DataType-3298"><span class="linenos">3298</span></a> <span class="p">}</span>
</span><span id="DataType-3299"><a href="#DataType-3299"><span class="linenos">3299</span></a>
</span><span id="DataType-3300"><a href="#DataType-3300"><span class="linenos">3300</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span>
</span><span id="DataType-3301"><a href="#DataType-3301"><span class="linenos">3301</span></a>
</span><span id="DataType-3302"><a href="#DataType-3302"><span class="linenos">3302</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="DataType-3303"><a href="#DataType-3303"><span class="linenos">3303</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span>
</span><span id="DataType-3304"><a href="#DataType-3304"><span class="linenos">3304</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span>
</span><span id="DataType-3305"><a href="#DataType-3305"><span class="linenos">3305</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span>
</span><span id="DataType-3306"><a href="#DataType-3306"><span class="linenos">3306</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span>
</span><span id="DataType-3307"><a href="#DataType-3307"><span class="linenos">3307</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span>
</span><span id="DataType-3308"><a href="#DataType-3308"><span class="linenos">3308</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME64</span><span class="p">,</span>
</span><span id="DataType-3309"><a href="#DataType-3309"><span class="linenos">3309</span></a> <span class="p">}</span>
</span><span id="DataType-3310"><a href="#DataType-3310"><span class="linenos">3310</span></a>
</span><span id="DataType-3311"><a href="#DataType-3311"><span class="linenos">3311</span></a> <span class="nd">@classmethod</span>
</span><span id="DataType-3312"><a href="#DataType-3312"><span class="linenos">3312</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
</span><span id="DataType-3313"><a href="#DataType-3313"><span class="linenos">3313</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
</span><span id="DataType-3314"><a href="#DataType-3314"><span class="linenos">3314</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
</span><span id="DataType-3315"><a href="#DataType-3315"><span class="linenos">3315</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
</span><span id="DataType-3316"><a href="#DataType-3316"><span class="linenos">3316</span></a>
</span><span id="DataType-3317"><a href="#DataType-3317"><span class="linenos">3317</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="DataType-3318"><a href="#DataType-3318"><span class="linenos">3318</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
</span><span id="DataType-3319"><a href="#DataType-3319"><span class="linenos">3319</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
</span><span id="DataType-3320"><a href="#DataType-3320"><span class="linenos">3320</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="DataType-3321"><a href="#DataType-3321"><span class="linenos">3321</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
</span><span id="DataType-3322"><a href="#DataType-3322"><span class="linenos">3322</span></a>
</span><span id="DataType-3323"><a href="#DataType-3323"><span class="linenos">3323</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="DataType-3324"><a href="#DataType-3324"><span class="linenos">3324</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="DataType-3325"><a href="#DataType-3325"><span class="linenos">3325</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span>
</span><span id="DataType-3326"><a href="#DataType-3326"><span class="linenos">3326</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span>
</span><span id="DataType-3327"><a href="#DataType-3327"><span class="linenos">3327</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
</span><span id="DataType-3328"><a href="#DataType-3328"><span class="linenos">3328</span></a> <span class="k">return</span> <span class="n">dtype</span>
</span><span id="DataType-3329"><a href="#DataType-3329"><span class="linenos">3329</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="DataType-3330"><a href="#DataType-3330"><span class="linenos">3330</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type&quot;</span><span class="p">)</span>
</span><span id="DataType-3331"><a href="#DataType-3331"><span class="linenos">3331</span></a>
</span><span id="DataType-3332"><a href="#DataType-3332"><span class="linenos">3332</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">})</span>
</span><span id="DataType-3333"><a href="#DataType-3333"><span class="linenos">3333</span></a>
</span><span id="DataType-3334"><a href="#DataType-3334"><span class="linenos">3334</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="DataType-3335"><a href="#DataType-3335"><span class="linenos">3335</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
</span></pre></div>
<div id="DataType.build" class="classattr">
<input id="DataType.build-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<div class="decorator">@classmethod</div>
<span class="def">def</span>
<span class="name">build</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#DataType">sqlglot.expressions.DataType</a></span> <span class="o">|</span> <span class="n"><a href="#DataType.Type">sqlglot.expressions.DataType.Type</a></span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#DataType">sqlglot.expressions.DataType</a></span>:</span></span>
<label class="view-source-button" for="DataType.build-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DataType.build"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DataType.build-3311"><a href="#DataType.build-3311"><span class="linenos">3311</span></a> <span class="nd">@classmethod</span>
</span><span id="DataType.build-3312"><a href="#DataType.build-3312"><span class="linenos">3312</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span>
</span><span id="DataType.build-3313"><a href="#DataType.build-3313"><span class="linenos">3313</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
</span><span id="DataType.build-3314"><a href="#DataType.build-3314"><span class="linenos">3314</span></a> <span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
</span><span id="DataType.build-3315"><a href="#DataType.build-3315"><span class="linenos">3315</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
</span><span id="DataType.build-3316"><a href="#DataType.build-3316"><span class="linenos">3316</span></a>
</span><span id="DataType.build-3317"><a href="#DataType.build-3317"><span class="linenos">3317</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="DataType.build-3318"><a href="#DataType.build-3318"><span class="linenos">3318</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span>
</span><span id="DataType.build-3319"><a href="#DataType.build-3319"><span class="linenos">3319</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span>
</span><span id="DataType.build-3320"><a href="#DataType.build-3320"><span class="linenos">3320</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="DataType.build-3321"><a href="#DataType.build-3321"><span class="linenos">3321</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span>
</span><span id="DataType.build-3322"><a href="#DataType.build-3322"><span class="linenos">3322</span></a>
</span><span id="DataType.build-3323"><a href="#DataType.build-3323"><span class="linenos">3323</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="DataType.build-3324"><a href="#DataType.build-3324"><span class="linenos">3324</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="DataType.build-3325"><a href="#DataType.build-3325"><span class="linenos">3325</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span>
</span><span id="DataType.build-3326"><a href="#DataType.build-3326"><span class="linenos">3326</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span>
</span><span id="DataType.build-3327"><a href="#DataType.build-3327"><span class="linenos">3327</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span>
</span><span id="DataType.build-3328"><a href="#DataType.build-3328"><span class="linenos">3328</span></a> <span class="k">return</span> <span class="n">dtype</span>
</span><span id="DataType.build-3329"><a href="#DataType.build-3329"><span class="linenos">3329</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="DataType.build-3330"><a href="#DataType.build-3330"><span class="linenos">3330</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type&quot;</span><span class="p">)</span>
</span><span id="DataType.build-3331"><a href="#DataType.build-3331"><span class="linenos">3331</span></a>
</span><span id="DataType.build-3332"><a href="#DataType.build-3332"><span class="linenos">3332</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">})</span>
</span></pre></div>
</div>
<div id="DataType.is_type" class="classattr">
<input id="DataType.is_type-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">is_type</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">dtype</span><span class="p">:</span> <span class="n"><a href="#DataType.Type">sqlglot.expressions.DataType.Type</a></span></span><span class="return-annotation">) -> <span class="nb">bool</span>:</span></span>
<label class="view-source-button" for="DataType.is_type-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DataType.is_type"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DataType.is_type-3334"><a href="#DataType.is_type-3334"><span class="linenos">3334</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="DataType.is_type-3335"><a href="#DataType.is_type-3335"><span class="linenos">3335</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span>
</span></pre></div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DataType.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DataType.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DataType.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DataType.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DataType.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DataType.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DataType.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DataType.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DataType.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DataType.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DataType.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DataType.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DataType.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DataType.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DataType.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DataType.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DataType.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DataType.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DataType.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DataType.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DataType.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DataType.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DataType.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DataType.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DataType.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DataType.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DataType.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DataType.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DataType.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DataType.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DataType.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DataType.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DataType.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DataType.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DataType.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DataType.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DataType.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DataType.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DataType.Type">
<input id="DataType.Type-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DataType.Type</span><wbr>(<span class="base"><a href="helper.html#AutoName">sqlglot.helper.AutoName</a></span>):
<label class="view-source-button" for="DataType.Type-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DataType.Type"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DataType.Type-3213"><a href="#DataType.Type-3213"><span class="linenos">3213</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span>
</span><span id="DataType.Type-3214"><a href="#DataType.Type-3214"><span class="linenos">3214</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3215"><a href="#DataType.Type-3215"><span class="linenos">3215</span></a> <span class="n">BIGDECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3216"><a href="#DataType.Type-3216"><span class="linenos">3216</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3217"><a href="#DataType.Type-3217"><span class="linenos">3217</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3218"><a href="#DataType.Type-3218"><span class="linenos">3218</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3219"><a href="#DataType.Type-3219"><span class="linenos">3219</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3220"><a href="#DataType.Type-3220"><span class="linenos">3220</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3221"><a href="#DataType.Type-3221"><span class="linenos">3221</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3222"><a href="#DataType.Type-3222"><span class="linenos">3222</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3223"><a href="#DataType.Type-3223"><span class="linenos">3223</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3224"><a href="#DataType.Type-3224"><span class="linenos">3224</span></a> <span class="n">DATETIME64</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3225"><a href="#DataType.Type-3225"><span class="linenos">3225</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3226"><a href="#DataType.Type-3226"><span class="linenos">3226</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3227"><a href="#DataType.Type-3227"><span class="linenos">3227</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3228"><a href="#DataType.Type-3228"><span class="linenos">3228</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3229"><a href="#DataType.Type-3229"><span class="linenos">3229</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3230"><a href="#DataType.Type-3230"><span class="linenos">3230</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3231"><a href="#DataType.Type-3231"><span class="linenos">3231</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3232"><a href="#DataType.Type-3232"><span class="linenos">3232</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3233"><a href="#DataType.Type-3233"><span class="linenos">3233</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3234"><a href="#DataType.Type-3234"><span class="linenos">3234</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3235"><a href="#DataType.Type-3235"><span class="linenos">3235</span></a> <span class="n">INT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3236"><a href="#DataType.Type-3236"><span class="linenos">3236</span></a> <span class="n">INT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3237"><a href="#DataType.Type-3237"><span class="linenos">3237</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3238"><a href="#DataType.Type-3238"><span class="linenos">3238</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3239"><a href="#DataType.Type-3239"><span class="linenos">3239</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3240"><a href="#DataType.Type-3240"><span class="linenos">3240</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3241"><a href="#DataType.Type-3241"><span class="linenos">3241</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3242"><a href="#DataType.Type-3242"><span class="linenos">3242</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3243"><a href="#DataType.Type-3243"><span class="linenos">3243</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3244"><a href="#DataType.Type-3244"><span class="linenos">3244</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3245"><a href="#DataType.Type-3245"><span class="linenos">3245</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3246"><a href="#DataType.Type-3246"><span class="linenos">3246</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3247"><a href="#DataType.Type-3247"><span class="linenos">3247</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3248"><a href="#DataType.Type-3248"><span class="linenos">3248</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3249"><a href="#DataType.Type-3249"><span class="linenos">3249</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3250"><a href="#DataType.Type-3250"><span class="linenos">3250</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3251"><a href="#DataType.Type-3251"><span class="linenos">3251</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3252"><a href="#DataType.Type-3252"><span class="linenos">3252</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3253"><a href="#DataType.Type-3253"><span class="linenos">3253</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3254"><a href="#DataType.Type-3254"><span class="linenos">3254</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3255"><a href="#DataType.Type-3255"><span class="linenos">3255</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3256"><a href="#DataType.Type-3256"><span class="linenos">3256</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3257"><a href="#DataType.Type-3257"><span class="linenos">3257</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3258"><a href="#DataType.Type-3258"><span class="linenos">3258</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3259"><a href="#DataType.Type-3259"><span class="linenos">3259</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3260"><a href="#DataType.Type-3260"><span class="linenos">3260</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3261"><a href="#DataType.Type-3261"><span class="linenos">3261</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3262"><a href="#DataType.Type-3262"><span class="linenos">3262</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3263"><a href="#DataType.Type-3263"><span class="linenos">3263</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3264"><a href="#DataType.Type-3264"><span class="linenos">3264</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3265"><a href="#DataType.Type-3265"><span class="linenos">3265</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3266"><a href="#DataType.Type-3266"><span class="linenos">3266</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3267"><a href="#DataType.Type-3267"><span class="linenos">3267</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3268"><a href="#DataType.Type-3268"><span class="linenos">3268</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span>
</span><span id="DataType.Type-3269"><a href="#DataType.Type-3269"><span class="linenos">3269</span></a> <span class="n">UINT128</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3270"><a href="#DataType.Type-3270"><span class="linenos">3270</span></a> <span class="n">UINT256</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3271"><a href="#DataType.Type-3271"><span class="linenos">3271</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3272"><a href="#DataType.Type-3272"><span class="linenos">3272</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3273"><a href="#DataType.Type-3273"><span class="linenos">3273</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3274"><a href="#DataType.Type-3274"><span class="linenos">3274</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3275"><a href="#DataType.Type-3275"><span class="linenos">3275</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span><span id="DataType.Type-3276"><a href="#DataType.Type-3276"><span class="linenos">3276</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span>
</span></pre></div>
<div class="docstring"><p>An enumeration.</p>
</div>
<div id="DataType.Type.ARRAY" class="classattr">
<div class="attr variable">
<span class="name">ARRAY</span> =
<span class="default_value">&lt;Type.ARRAY: &#39;ARRAY&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.ARRAY"></a>
</div>
<div id="DataType.Type.BIGDECIMAL" class="classattr">
<div class="attr variable">
<span class="name">BIGDECIMAL</span> =
<span class="default_value">&lt;Type.BIGDECIMAL: &#39;BIGDECIMAL&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.BIGDECIMAL"></a>
</div>
<div id="DataType.Type.BIGINT" class="classattr">
<div class="attr variable">
<span class="name">BIGINT</span> =
<span class="default_value">&lt;Type.BIGINT: &#39;BIGINT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.BIGINT"></a>
</div>
<div id="DataType.Type.BIGSERIAL" class="classattr">
<div class="attr variable">
<span class="name">BIGSERIAL</span> =
<span class="default_value">&lt;Type.BIGSERIAL: &#39;BIGSERIAL&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.BIGSERIAL"></a>
</div>
<div id="DataType.Type.BINARY" class="classattr">
<div class="attr variable">
<span class="name">BINARY</span> =
<span class="default_value">&lt;Type.BINARY: &#39;BINARY&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.BINARY"></a>
</div>
<div id="DataType.Type.BIT" class="classattr">
<div class="attr variable">
<span class="name">BIT</span> =
<span class="default_value">&lt;Type.BIT: &#39;BIT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.BIT"></a>
</div>
<div id="DataType.Type.BOOLEAN" class="classattr">
<div class="attr variable">
<span class="name">BOOLEAN</span> =
<span class="default_value">&lt;Type.BOOLEAN: &#39;BOOLEAN&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.BOOLEAN"></a>
</div>
<div id="DataType.Type.CHAR" class="classattr">
<div class="attr variable">
<span class="name">CHAR</span> =
<span class="default_value">&lt;Type.CHAR: &#39;CHAR&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.CHAR"></a>
</div>
<div id="DataType.Type.DATE" class="classattr">
<div class="attr variable">
<span class="name">DATE</span> =
<span class="default_value">&lt;Type.DATE: &#39;DATE&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.DATE"></a>
</div>
<div id="DataType.Type.DATETIME" class="classattr">
<div class="attr variable">
<span class="name">DATETIME</span> =
<span class="default_value">&lt;Type.DATETIME: &#39;DATETIME&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.DATETIME"></a>
</div>
<div id="DataType.Type.DATETIME64" class="classattr">
<div class="attr variable">
<span class="name">DATETIME64</span> =
<span class="default_value">&lt;Type.DATETIME64: &#39;DATETIME64&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.DATETIME64"></a>
</div>
<div id="DataType.Type.DECIMAL" class="classattr">
<div class="attr variable">
<span class="name">DECIMAL</span> =
<span class="default_value">&lt;Type.DECIMAL: &#39;DECIMAL&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.DECIMAL"></a>
</div>
<div id="DataType.Type.DOUBLE" class="classattr">
<div class="attr variable">
<span class="name">DOUBLE</span> =
<span class="default_value">&lt;Type.DOUBLE: &#39;DOUBLE&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.DOUBLE"></a>
</div>
<div id="DataType.Type.FLOAT" class="classattr">
<div class="attr variable">
<span class="name">FLOAT</span> =
<span class="default_value">&lt;Type.FLOAT: &#39;FLOAT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.FLOAT"></a>
</div>
<div id="DataType.Type.GEOGRAPHY" class="classattr">
<div class="attr variable">
<span class="name">GEOGRAPHY</span> =
<span class="default_value">&lt;Type.GEOGRAPHY: &#39;GEOGRAPHY&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.GEOGRAPHY"></a>
</div>
<div id="DataType.Type.GEOMETRY" class="classattr">
<div class="attr variable">
<span class="name">GEOMETRY</span> =
<span class="default_value">&lt;Type.GEOMETRY: &#39;GEOMETRY&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.GEOMETRY"></a>
</div>
<div id="DataType.Type.HLLSKETCH" class="classattr">
<div class="attr variable">
<span class="name">HLLSKETCH</span> =
<span class="default_value">&lt;Type.HLLSKETCH: &#39;HLLSKETCH&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.HLLSKETCH"></a>
</div>
<div id="DataType.Type.HSTORE" class="classattr">
<div class="attr variable">
<span class="name">HSTORE</span> =
<span class="default_value">&lt;Type.HSTORE: &#39;HSTORE&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.HSTORE"></a>
</div>
<div id="DataType.Type.IMAGE" class="classattr">
<div class="attr variable">
<span class="name">IMAGE</span> =
<span class="default_value">&lt;Type.IMAGE: &#39;IMAGE&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.IMAGE"></a>
</div>
<div id="DataType.Type.INET" class="classattr">
<div class="attr variable">
<span class="name">INET</span> =
<span class="default_value">&lt;Type.INET: &#39;INET&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.INET"></a>
</div>
<div id="DataType.Type.INT" class="classattr">
<div class="attr variable">
<span class="name">INT</span> =
<span class="default_value">&lt;Type.INT: &#39;INT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.INT"></a>
</div>
<div id="DataType.Type.INT128" class="classattr">
<div class="attr variable">
<span class="name">INT128</span> =
<span class="default_value">&lt;Type.INT128: &#39;INT128&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.INT128"></a>
</div>
<div id="DataType.Type.INT256" class="classattr">
<div class="attr variable">
<span class="name">INT256</span> =
<span class="default_value">&lt;Type.INT256: &#39;INT256&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.INT256"></a>
</div>
<div id="DataType.Type.INTERVAL" class="classattr">
<div class="attr variable">
<span class="name">INTERVAL</span> =
<span class="default_value">&lt;Type.INTERVAL: &#39;INTERVAL&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.INTERVAL"></a>
</div>
<div id="DataType.Type.JSON" class="classattr">
<div class="attr variable">
<span class="name">JSON</span> =
<span class="default_value">&lt;Type.JSON: &#39;JSON&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.JSON"></a>
</div>
<div id="DataType.Type.JSONB" class="classattr">
<div class="attr variable">
<span class="name">JSONB</span> =
<span class="default_value">&lt;Type.JSONB: &#39;JSONB&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.JSONB"></a>
</div>
<div id="DataType.Type.LONGBLOB" class="classattr">
<div class="attr variable">
<span class="name">LONGBLOB</span> =
<span class="default_value">&lt;Type.LONGBLOB: &#39;LONGBLOB&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.LONGBLOB"></a>
</div>
<div id="DataType.Type.LONGTEXT" class="classattr">
<div class="attr variable">
<span class="name">LONGTEXT</span> =
<span class="default_value">&lt;Type.LONGTEXT: &#39;LONGTEXT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.LONGTEXT"></a>
</div>
<div id="DataType.Type.MAP" class="classattr">
<div class="attr variable">
<span class="name">MAP</span> =
<span class="default_value">&lt;Type.MAP: &#39;MAP&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.MAP"></a>
</div>
<div id="DataType.Type.MEDIUMBLOB" class="classattr">
<div class="attr variable">
<span class="name">MEDIUMBLOB</span> =
<span class="default_value">&lt;Type.MEDIUMBLOB: &#39;MEDIUMBLOB&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.MEDIUMBLOB"></a>
</div>
<div id="DataType.Type.MEDIUMTEXT" class="classattr">
<div class="attr variable">
<span class="name">MEDIUMTEXT</span> =
<span class="default_value">&lt;Type.MEDIUMTEXT: &#39;MEDIUMTEXT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.MEDIUMTEXT"></a>
</div>
<div id="DataType.Type.MONEY" class="classattr">
<div class="attr variable">
<span class="name">MONEY</span> =
<span class="default_value">&lt;Type.MONEY: &#39;MONEY&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.MONEY"></a>
</div>
<div id="DataType.Type.NCHAR" class="classattr">
<div class="attr variable">
<span class="name">NCHAR</span> =
<span class="default_value">&lt;Type.NCHAR: &#39;NCHAR&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.NCHAR"></a>
</div>
<div id="DataType.Type.NULL" class="classattr">
<div class="attr variable">
<span class="name">NULL</span> =
<span class="default_value">&lt;Type.NULL: &#39;NULL&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.NULL"></a>
</div>
<div id="DataType.Type.NULLABLE" class="classattr">
<div class="attr variable">
<span class="name">NULLABLE</span> =
<span class="default_value">&lt;Type.NULLABLE: &#39;NULLABLE&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.NULLABLE"></a>
</div>
<div id="DataType.Type.NVARCHAR" class="classattr">
<div class="attr variable">
<span class="name">NVARCHAR</span> =
<span class="default_value">&lt;Type.NVARCHAR: &#39;NVARCHAR&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.NVARCHAR"></a>
</div>
<div id="DataType.Type.OBJECT" class="classattr">
<div class="attr variable">
<span class="name">OBJECT</span> =
<span class="default_value">&lt;Type.OBJECT: &#39;OBJECT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.OBJECT"></a>
</div>
<div id="DataType.Type.ROWVERSION" class="classattr">
<div class="attr variable">
<span class="name">ROWVERSION</span> =
<span class="default_value">&lt;Type.ROWVERSION: &#39;ROWVERSION&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.ROWVERSION"></a>
</div>
<div id="DataType.Type.SERIAL" class="classattr">
<div class="attr variable">
<span class="name">SERIAL</span> =
<span class="default_value">&lt;Type.SERIAL: &#39;SERIAL&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.SERIAL"></a>
</div>
<div id="DataType.Type.SMALLINT" class="classattr">
<div class="attr variable">
<span class="name">SMALLINT</span> =
<span class="default_value">&lt;Type.SMALLINT: &#39;SMALLINT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.SMALLINT"></a>
</div>
<div id="DataType.Type.SMALLMONEY" class="classattr">
<div class="attr variable">
<span class="name">SMALLMONEY</span> =
<span class="default_value">&lt;Type.SMALLMONEY: &#39;SMALLMONEY&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.SMALLMONEY"></a>
</div>
<div id="DataType.Type.SMALLSERIAL" class="classattr">
<div class="attr variable">
<span class="name">SMALLSERIAL</span> =
<span class="default_value">&lt;Type.SMALLSERIAL: &#39;SMALLSERIAL&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.SMALLSERIAL"></a>
</div>
<div id="DataType.Type.STRUCT" class="classattr">
<div class="attr variable">
<span class="name">STRUCT</span> =
<span class="default_value">&lt;Type.STRUCT: &#39;STRUCT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.STRUCT"></a>
</div>
<div id="DataType.Type.SUPER" class="classattr">
<div class="attr variable">
<span class="name">SUPER</span> =
<span class="default_value">&lt;Type.SUPER: &#39;SUPER&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.SUPER"></a>
</div>
<div id="DataType.Type.TEXT" class="classattr">
<div class="attr variable">
<span class="name">TEXT</span> =
<span class="default_value">&lt;Type.TEXT: &#39;TEXT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.TEXT"></a>
</div>
<div id="DataType.Type.TIME" class="classattr">
<div class="attr variable">
<span class="name">TIME</span> =
<span class="default_value">&lt;Type.TIME: &#39;TIME&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.TIME"></a>
</div>
<div id="DataType.Type.TIMESTAMP" class="classattr">
<div class="attr variable">
<span class="name">TIMESTAMP</span> =
<span class="default_value">&lt;Type.TIMESTAMP: &#39;TIMESTAMP&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.TIMESTAMP"></a>
</div>
<div id="DataType.Type.TIMESTAMPTZ" class="classattr">
<div class="attr variable">
<span class="name">TIMESTAMPTZ</span> =
<span class="default_value">&lt;Type.TIMESTAMPTZ: &#39;TIMESTAMPTZ&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.TIMESTAMPTZ"></a>
</div>
<div id="DataType.Type.TIMESTAMPLTZ" class="classattr">
<div class="attr variable">
<span class="name">TIMESTAMPLTZ</span> =
<span class="default_value">&lt;Type.TIMESTAMPLTZ: &#39;TIMESTAMPLTZ&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.TIMESTAMPLTZ"></a>
</div>
<div id="DataType.Type.TINYINT" class="classattr">
<div class="attr variable">
<span class="name">TINYINT</span> =
<span class="default_value">&lt;Type.TINYINT: &#39;TINYINT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.TINYINT"></a>
</div>
<div id="DataType.Type.UBIGINT" class="classattr">
<div class="attr variable">
<span class="name">UBIGINT</span> =
<span class="default_value">&lt;Type.UBIGINT: &#39;UBIGINT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.UBIGINT"></a>
</div>
<div id="DataType.Type.UINT" class="classattr">
<div class="attr variable">
<span class="name">UINT</span> =
<span class="default_value">&lt;Type.UINT: &#39;UINT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.UINT"></a>
</div>
<div id="DataType.Type.USMALLINT" class="classattr">
<div class="attr variable">
<span class="name">USMALLINT</span> =
<span class="default_value">&lt;Type.USMALLINT: &#39;USMALLINT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.USMALLINT"></a>
</div>
<div id="DataType.Type.UTINYINT" class="classattr">
<div class="attr variable">
<span class="name">UTINYINT</span> =
<span class="default_value">&lt;Type.UTINYINT: &#39;UTINYINT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.UTINYINT"></a>
</div>
<div id="DataType.Type.UNKNOWN" class="classattr">
<div class="attr variable">
<span class="name">UNKNOWN</span> =
<span class="default_value">&lt;Type.UNKNOWN: &#39;UNKNOWN&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.UNKNOWN"></a>
</div>
<div id="DataType.Type.UINT128" class="classattr">
<div class="attr variable">
<span class="name">UINT128</span> =
<span class="default_value">&lt;Type.UINT128: &#39;UINT128&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.UINT128"></a>
</div>
<div id="DataType.Type.UINT256" class="classattr">
<div class="attr variable">
<span class="name">UINT256</span> =
<span class="default_value">&lt;Type.UINT256: &#39;UINT256&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.UINT256"></a>
</div>
<div id="DataType.Type.UNIQUEIDENTIFIER" class="classattr">
<div class="attr variable">
<span class="name">UNIQUEIDENTIFIER</span> =
<span class="default_value">&lt;Type.UNIQUEIDENTIFIER: &#39;UNIQUEIDENTIFIER&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.UNIQUEIDENTIFIER"></a>
</div>
<div id="DataType.Type.UUID" class="classattr">
<div class="attr variable">
<span class="name">UUID</span> =
<span class="default_value">&lt;Type.UUID: &#39;UUID&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.UUID"></a>
</div>
<div id="DataType.Type.VARBINARY" class="classattr">
<div class="attr variable">
<span class="name">VARBINARY</span> =
<span class="default_value">&lt;Type.VARBINARY: &#39;VARBINARY&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.VARBINARY"></a>
</div>
<div id="DataType.Type.VARCHAR" class="classattr">
<div class="attr variable">
<span class="name">VARCHAR</span> =
<span class="default_value">&lt;Type.VARCHAR: &#39;VARCHAR&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.VARCHAR"></a>
</div>
<div id="DataType.Type.VARIANT" class="classattr">
<div class="attr variable">
<span class="name">VARIANT</span> =
<span class="default_value">&lt;Type.VARIANT: &#39;VARIANT&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.VARIANT"></a>
</div>
<div id="DataType.Type.XML" class="classattr">
<div class="attr variable">
<span class="name">XML</span> =
<span class="default_value">&lt;Type.XML: &#39;XML&#39;&gt;</span>
</div>
<a class="headerlink" href="#DataType.Type.XML"></a>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt>enum.Enum</dt>
<dd id="DataType.Type.name" class="variable">name</dd>
<dd id="DataType.Type.value" class="variable">value</dd>
</div>
</dl>
</div>
</section>
<section id="PseudoType">
<input id="PseudoType-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">PseudoType</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="PseudoType-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#PseudoType"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="PseudoType-3339"><a href="#PseudoType-3339"><span class="linenos">3339</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="PseudoType-3340"><a href="#PseudoType-3340"><span class="linenos">3340</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="PseudoType.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="PseudoType.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="PseudoType.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="PseudoType.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="PseudoType.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="PseudoType.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="PseudoType.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="PseudoType.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PseudoType.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PseudoType.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PseudoType.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PseudoType.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PseudoType.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="PseudoType.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PseudoType.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PseudoType.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="PseudoType.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="PseudoType.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="PseudoType.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="PseudoType.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="PseudoType.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="PseudoType.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="PseudoType.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="PseudoType.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="PseudoType.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="PseudoType.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="PseudoType.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="PseudoType.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PseudoType.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PseudoType.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="PseudoType.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PseudoType.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PseudoType.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="PseudoType.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="PseudoType.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="PseudoType.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="PseudoType.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="PseudoType.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="SubqueryPredicate">
<input id="SubqueryPredicate-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SubqueryPredicate</span><wbr>(<span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="SubqueryPredicate-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SubqueryPredicate"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SubqueryPredicate-3344"><a href="#SubqueryPredicate-3344"><span class="linenos">3344</span></a><span class="k">class</span> <span class="nc">SubqueryPredicate</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
</span><span id="SubqueryPredicate-3345"><a href="#SubqueryPredicate-3345"><span class="linenos">3345</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SubqueryPredicate.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SubqueryPredicate.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SubqueryPredicate.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SubqueryPredicate.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SubqueryPredicate.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SubqueryPredicate.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SubqueryPredicate.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SubqueryPredicate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SubqueryPredicate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SubqueryPredicate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SubqueryPredicate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SubqueryPredicate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SubqueryPredicate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SubqueryPredicate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SubqueryPredicate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SubqueryPredicate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SubqueryPredicate.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SubqueryPredicate.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SubqueryPredicate.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SubqueryPredicate.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SubqueryPredicate.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SubqueryPredicate.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SubqueryPredicate.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SubqueryPredicate.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SubqueryPredicate.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SubqueryPredicate.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SubqueryPredicate.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SubqueryPredicate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SubqueryPredicate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SubqueryPredicate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SubqueryPredicate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SubqueryPredicate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SubqueryPredicate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SubqueryPredicate.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SubqueryPredicate.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SubqueryPredicate.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SubqueryPredicate.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SubqueryPredicate.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="SubqueryPredicate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SubqueryPredicate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SubqueryPredicate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="SubqueryPredicate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SubqueryPredicate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SubqueryPredicate.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="SubqueryPredicate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SubqueryPredicate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SubqueryPredicate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SubqueryPredicate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="SubqueryPredicate.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="SubqueryPredicate.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="All">
<input id="All-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">All</span><wbr>(<span class="base"><a href="#SubqueryPredicate">SubqueryPredicate</a></span>):
<label class="view-source-button" for="All-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#All"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="All-3348"><a href="#All-3348"><span class="linenos">3348</span></a><span class="k">class</span> <span class="nc">All</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
</span><span id="All-3349"><a href="#All-3349"><span class="linenos">3349</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="All.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="All.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="All.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="All.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="All.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="All.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="All.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="All.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="All.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="All.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="All.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="All.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="All.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="All.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="All.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="All.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="All.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="All.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="All.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="All.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="All.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="All.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="All.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="All.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="All.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="All.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="All.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="All.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="All.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="All.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="All.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="All.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="All.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="All.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="All.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="All.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="All.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="All.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="All.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="All.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="All.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="All.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="All.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="All.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="All.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="All.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="All.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="All.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="All.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="All.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Any">
<input id="Any-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Any</span><wbr>(<span class="base"><a href="#SubqueryPredicate">SubqueryPredicate</a></span>):
<label class="view-source-button" for="Any-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Any"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Any-3352"><a href="#Any-3352"><span class="linenos">3352</span></a><span class="k">class</span> <span class="nc">Any</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
</span><span id="Any-3353"><a href="#Any-3353"><span class="linenos">3353</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Any.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Any.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Any.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Any.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Any.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Any.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Any.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Any.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Any.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Any.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Any.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Any.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Any.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Any.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Any.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Any.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Any.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Any.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Any.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Any.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Any.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Any.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Any.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Any.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Any.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Any.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Any.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Any.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Any.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Any.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Any.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Any.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Any.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Any.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Any.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Any.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Any.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Any.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Any.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Any.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Any.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Any.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Any.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Any.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Any.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Any.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Any.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Any.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Any.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Any.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Exists">
<input id="Exists-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Exists</span><wbr>(<span class="base"><a href="#SubqueryPredicate">SubqueryPredicate</a></span>):
<label class="view-source-button" for="Exists-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Exists"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Exists-3356"><a href="#Exists-3356"><span class="linenos">3356</span></a><span class="k">class</span> <span class="nc">Exists</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span>
</span><span id="Exists-3357"><a href="#Exists-3357"><span class="linenos">3357</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Exists.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Exists.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Exists.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Exists.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Exists.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Exists.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Exists.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Exists.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Exists.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Exists.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Exists.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Exists.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Exists.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Exists.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Exists.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Exists.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Exists.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Exists.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Exists.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Exists.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Exists.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Exists.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Exists.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Exists.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Exists.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Exists.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Exists.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Exists.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Exists.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Exists.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Exists.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Exists.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Exists.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Exists.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Exists.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Exists.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Exists.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Exists.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Exists.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Exists.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Exists.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Exists.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Exists.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Exists.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Exists.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Exists.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Exists.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Exists.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Exists.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Exists.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Command">
<input id="Command-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Command</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Command-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Command"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Command-3362"><a href="#Command-3362"><span class="linenos">3362</span></a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Command-3363"><a href="#Command-3363"><span class="linenos">3363</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Command.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Command.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Command.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Command.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Command.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Command.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Command.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Command.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Command.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Command.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Command.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Command.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Command.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Command.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Command.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Command.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Command.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Command.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Command.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Command.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Command.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Command.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Command.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Command.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Command.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Command.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Command.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Command.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Command.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Command.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Command.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Command.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Command.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Command.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Command.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Command.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Command.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Command.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Transaction">
<input id="Transaction-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Transaction</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Transaction-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Transaction"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Transaction-3366"><a href="#Transaction-3366"><span class="linenos">3366</span></a><span class="k">class</span> <span class="nc">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Transaction-3367"><a href="#Transaction-3367"><span class="linenos">3367</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;modes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Transaction.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Transaction.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Transaction.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Transaction.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Transaction.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Transaction.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Transaction.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Transaction.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Transaction.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Transaction.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Transaction.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Transaction.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Transaction.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Transaction.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Transaction.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Transaction.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Transaction.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Transaction.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Transaction.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Transaction.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Transaction.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Transaction.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Transaction.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Transaction.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Transaction.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Transaction.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Transaction.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Transaction.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Transaction.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Transaction.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Transaction.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Transaction.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Transaction.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Transaction.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Transaction.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Transaction.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Transaction.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Transaction.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Commit">
<input id="Commit-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Commit</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Commit-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Commit"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Commit-3370"><a href="#Commit-3370"><span class="linenos">3370</span></a><span class="k">class</span> <span class="nc">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Commit-3371"><a href="#Commit-3371"><span class="linenos">3371</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;chain&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Commit.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Commit.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Commit.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Commit.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Commit.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Commit.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Commit.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Commit.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Commit.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Commit.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Commit.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Commit.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Commit.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Commit.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Commit.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Commit.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Commit.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Commit.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Commit.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Commit.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Commit.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Commit.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Commit.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Commit.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Commit.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Commit.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Commit.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Commit.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Commit.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Commit.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Commit.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Commit.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Commit.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Commit.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Commit.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Commit.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Commit.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Commit.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Rollback">
<input id="Rollback-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Rollback</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Rollback-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Rollback"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Rollback-3374"><a href="#Rollback-3374"><span class="linenos">3374</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Rollback-3375"><a href="#Rollback-3375"><span class="linenos">3375</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;savepoint&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Rollback.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Rollback.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Rollback.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Rollback.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Rollback.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Rollback.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Rollback.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Rollback.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Rollback.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Rollback.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Rollback.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Rollback.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Rollback.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Rollback.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Rollback.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Rollback.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Rollback.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Rollback.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Rollback.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Rollback.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Rollback.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Rollback.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Rollback.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Rollback.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Rollback.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Rollback.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Rollback.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Rollback.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Rollback.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Rollback.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Rollback.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Rollback.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Rollback.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Rollback.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Rollback.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Rollback.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Rollback.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Rollback.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="AlterTable">
<input id="AlterTable-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">AlterTable</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="AlterTable-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#AlterTable"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="AlterTable-3378"><a href="#AlterTable-3378"><span class="linenos">3378</span></a><span class="k">class</span> <span class="nc">AlterTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="AlterTable-3379"><a href="#AlterTable-3379"><span class="linenos">3379</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;actions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="AlterTable.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="AlterTable.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="AlterTable.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="AlterTable.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="AlterTable.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="AlterTable.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="AlterTable.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="AlterTable.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AlterTable.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AlterTable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AlterTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AlterTable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AlterTable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="AlterTable.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AlterTable.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AlterTable.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="AlterTable.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="AlterTable.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="AlterTable.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="AlterTable.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="AlterTable.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="AlterTable.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="AlterTable.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="AlterTable.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="AlterTable.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="AlterTable.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="AlterTable.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="AlterTable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AlterTable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AlterTable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="AlterTable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AlterTable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AlterTable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="AlterTable.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="AlterTable.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="AlterTable.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="AlterTable.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="AlterTable.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="AddConstraint">
<input id="AddConstraint-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">AddConstraint</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="AddConstraint-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#AddConstraint"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="AddConstraint-3382"><a href="#AddConstraint-3382"><span class="linenos">3382</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="AddConstraint-3383"><a href="#AddConstraint-3383"><span class="linenos">3383</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;enforced&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="AddConstraint.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="AddConstraint.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="AddConstraint.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="AddConstraint.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="AddConstraint.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="AddConstraint.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="AddConstraint.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="AddConstraint.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AddConstraint.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AddConstraint.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AddConstraint.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AddConstraint.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AddConstraint.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="AddConstraint.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AddConstraint.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AddConstraint.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="AddConstraint.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="AddConstraint.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="AddConstraint.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="AddConstraint.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="AddConstraint.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="AddConstraint.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="AddConstraint.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="AddConstraint.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="AddConstraint.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="AddConstraint.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="AddConstraint.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="AddConstraint.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AddConstraint.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AddConstraint.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="AddConstraint.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AddConstraint.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AddConstraint.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="AddConstraint.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="AddConstraint.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="AddConstraint.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="AddConstraint.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="AddConstraint.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DropPartition">
<input id="DropPartition-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DropPartition</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="DropPartition-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DropPartition"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DropPartition-3386"><a href="#DropPartition-3386"><span class="linenos">3386</span></a><span class="k">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="DropPartition-3387"><a href="#DropPartition-3387"><span class="linenos">3387</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;exists&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DropPartition.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DropPartition.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DropPartition.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DropPartition.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DropPartition.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DropPartition.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DropPartition.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DropPartition.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DropPartition.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DropPartition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DropPartition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DropPartition.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DropPartition.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DropPartition.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DropPartition.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DropPartition.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DropPartition.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DropPartition.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DropPartition.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DropPartition.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DropPartition.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DropPartition.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DropPartition.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DropPartition.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DropPartition.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DropPartition.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DropPartition.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DropPartition.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DropPartition.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DropPartition.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DropPartition.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DropPartition.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DropPartition.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DropPartition.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DropPartition.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DropPartition.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DropPartition.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DropPartition.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Binary">
<input id="Binary-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Binary</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
<label class="view-source-button" for="Binary-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Binary"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Binary-3391"><a href="#Binary-3391"><span class="linenos">3391</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="Binary-3392"><a href="#Binary-3392"><span class="linenos">3392</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="Binary-3393"><a href="#Binary-3393"><span class="linenos">3393</span></a>
</span><span id="Binary-3394"><a href="#Binary-3394"><span class="linenos">3394</span></a> <span class="nd">@property</span>
</span><span id="Binary-3395"><a href="#Binary-3395"><span class="linenos">3395</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Binary-3396"><a href="#Binary-3396"><span class="linenos">3396</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span>
</span><span id="Binary-3397"><a href="#Binary-3397"><span class="linenos">3397</span></a>
</span><span id="Binary-3398"><a href="#Binary-3398"><span class="linenos">3398</span></a> <span class="nd">@property</span>
</span><span id="Binary-3399"><a href="#Binary-3399"><span class="linenos">3399</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Binary-3400"><a href="#Binary-3400"><span class="linenos">3400</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Binary.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Binary.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Binary.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Binary.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Binary.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Binary.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Binary.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Binary.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Binary.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Binary.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Binary.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Binary.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Binary.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Binary.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Binary.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Binary.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Binary.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Binary.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Binary.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Binary.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Binary.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Binary.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Binary.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Binary.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Binary.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Binary.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Binary.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Binary.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Binary.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Binary.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Binary.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Binary.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Binary.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Binary.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Binary.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Binary.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Binary.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Binary.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Binary.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Binary.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Binary.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Binary.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Binary.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Binary.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Binary.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Binary.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Binary.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Binary.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Binary.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Binary.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Add">
<input id="Add-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Add</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="Add-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Add"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Add-3403"><a href="#Add-3403"><span class="linenos">3403</span></a><span class="k">class</span> <span class="nc">Add</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="Add-3404"><a href="#Add-3404"><span class="linenos">3404</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Add.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Add.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Add.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Add.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Add.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Add.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Add.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Add.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Add.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Add.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Add.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Add.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Add.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Add.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Add.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Add.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Add.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Add.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Add.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Add.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Add.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Add.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Add.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Add.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Add.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Add.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Add.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Add.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Add.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Add.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Add.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Add.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Add.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Add.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Add.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Add.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Add.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Add.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Add.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Add.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Add.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Add.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Add.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Add.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Add.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Add.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Add.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Add.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Add.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Add.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Connector">
<input id="Connector-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Connector</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="Connector-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Connector"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Connector-3407"><a href="#Connector-3407"><span class="linenos">3407</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="Connector-3408"><a href="#Connector-3408"><span class="linenos">3408</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Connector.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Connector.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Connector.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Connector.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Connector.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Connector.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Connector.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Connector.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Connector.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Connector.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Connector.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Connector.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Connector.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Connector.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Connector.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Connector.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Connector.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Connector.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Connector.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Connector.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Connector.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Connector.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Connector.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Connector.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Connector.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Connector.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Connector.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Connector.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Connector.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Connector.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Connector.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Connector.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Connector.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Connector.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Connector.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Connector.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Connector.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Connector.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Connector.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Connector.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Connector.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Connector.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Connector.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Connector.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Connector.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Connector.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Connector.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Connector.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Connector.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Connector.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="And">
<input id="And-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">And</span><wbr>(<span class="base"><a href="#Connector">Connector</a></span>):
<label class="view-source-button" for="And-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#And"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="And-3411"><a href="#And-3411"><span class="linenos">3411</span></a><span class="k">class</span> <span class="nc">And</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
</span><span id="And-3412"><a href="#And-3412"><span class="linenos">3412</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="And.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="And.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="And.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="And.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="And.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="And.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="And.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="And.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="And.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="And.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="And.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="And.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="And.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="And.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="And.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="And.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="And.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="And.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="And.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="And.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="And.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="And.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="And.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="And.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="And.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="And.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="And.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="And.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="And.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="And.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="And.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="And.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="And.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="And.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="And.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="And.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="And.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="And.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="And.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="And.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="And.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="And.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="And.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="And.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="And.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="And.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="And.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="And.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="And.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="And.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Or">
<input id="Or-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Or</span><wbr>(<span class="base"><a href="#Connector">Connector</a></span>):
<label class="view-source-button" for="Or-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Or"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Or-3415"><a href="#Or-3415"><span class="linenos">3415</span></a><span class="k">class</span> <span class="nc">Or</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span>
</span><span id="Or-3416"><a href="#Or-3416"><span class="linenos">3416</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Or.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Or.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Or.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Or.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Or.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Or.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Or.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Or.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Or.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Or.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Or.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Or.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Or.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Or.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Or.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Or.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Or.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Or.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Or.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Or.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Or.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Or.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Or.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Or.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Or.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Or.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Or.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Or.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Or.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Or.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Or.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Or.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Or.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Or.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Or.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Or.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Or.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Or.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Or.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Or.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Or.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Or.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Or.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Or.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Or.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Or.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Or.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Or.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Or.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Or.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="BitwiseAnd">
<input id="BitwiseAnd-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">BitwiseAnd</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="BitwiseAnd-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#BitwiseAnd"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseAnd-3419"><a href="#BitwiseAnd-3419"><span class="linenos">3419</span></a><span class="k">class</span> <span class="nc">BitwiseAnd</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="BitwiseAnd-3420"><a href="#BitwiseAnd-3420"><span class="linenos">3420</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="BitwiseAnd.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="BitwiseAnd.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="BitwiseAnd.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="BitwiseAnd.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="BitwiseAnd.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="BitwiseAnd.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="BitwiseAnd.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="BitwiseAnd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitwiseAnd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitwiseAnd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitwiseAnd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitwiseAnd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitwiseAnd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="BitwiseAnd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitwiseAnd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitwiseAnd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="BitwiseAnd.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="BitwiseAnd.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="BitwiseAnd.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="BitwiseAnd.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="BitwiseAnd.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="BitwiseAnd.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="BitwiseAnd.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="BitwiseAnd.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="BitwiseAnd.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="BitwiseAnd.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="BitwiseAnd.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="BitwiseAnd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitwiseAnd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitwiseAnd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="BitwiseAnd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitwiseAnd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitwiseAnd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="BitwiseAnd.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="BitwiseAnd.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="BitwiseAnd.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="BitwiseAnd.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="BitwiseAnd.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="BitwiseAnd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitwiseAnd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitwiseAnd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="BitwiseAnd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitwiseAnd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitwiseAnd.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="BitwiseAnd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitwiseAnd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitwiseAnd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitwiseAnd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="BitwiseAnd.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="BitwiseAnd.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="BitwiseLeftShift">
<input id="BitwiseLeftShift-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">BitwiseLeftShift</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="BitwiseLeftShift-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#BitwiseLeftShift"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseLeftShift-3423"><a href="#BitwiseLeftShift-3423"><span class="linenos">3423</span></a><span class="k">class</span> <span class="nc">BitwiseLeftShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="BitwiseLeftShift-3424"><a href="#BitwiseLeftShift-3424"><span class="linenos">3424</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="BitwiseLeftShift.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="BitwiseLeftShift.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="BitwiseLeftShift.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="BitwiseLeftShift.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="BitwiseLeftShift.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="BitwiseLeftShift.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="BitwiseLeftShift.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="BitwiseLeftShift.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitwiseLeftShift.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitwiseLeftShift.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitwiseLeftShift.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitwiseLeftShift.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitwiseLeftShift.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="BitwiseLeftShift.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitwiseLeftShift.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitwiseLeftShift.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="BitwiseLeftShift.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="BitwiseLeftShift.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="BitwiseLeftShift.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="BitwiseLeftShift.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="BitwiseLeftShift.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="BitwiseLeftShift.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="BitwiseLeftShift.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="BitwiseLeftShift.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="BitwiseLeftShift.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="BitwiseLeftShift.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="BitwiseLeftShift.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="BitwiseLeftShift.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitwiseLeftShift.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitwiseLeftShift.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="BitwiseLeftShift.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitwiseLeftShift.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitwiseLeftShift.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="BitwiseLeftShift.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="BitwiseLeftShift.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="BitwiseLeftShift.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="BitwiseLeftShift.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="BitwiseLeftShift.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="BitwiseLeftShift.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitwiseLeftShift.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitwiseLeftShift.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="BitwiseLeftShift.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitwiseLeftShift.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitwiseLeftShift.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="BitwiseLeftShift.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitwiseLeftShift.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitwiseLeftShift.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitwiseLeftShift.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="BitwiseLeftShift.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="BitwiseLeftShift.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="BitwiseOr">
<input id="BitwiseOr-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">BitwiseOr</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="BitwiseOr-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#BitwiseOr"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseOr-3427"><a href="#BitwiseOr-3427"><span class="linenos">3427</span></a><span class="k">class</span> <span class="nc">BitwiseOr</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="BitwiseOr-3428"><a href="#BitwiseOr-3428"><span class="linenos">3428</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="BitwiseOr.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="BitwiseOr.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="BitwiseOr.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="BitwiseOr.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="BitwiseOr.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="BitwiseOr.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="BitwiseOr.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="BitwiseOr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitwiseOr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitwiseOr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitwiseOr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitwiseOr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitwiseOr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="BitwiseOr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitwiseOr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitwiseOr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="BitwiseOr.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="BitwiseOr.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="BitwiseOr.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="BitwiseOr.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="BitwiseOr.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="BitwiseOr.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="BitwiseOr.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="BitwiseOr.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="BitwiseOr.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="BitwiseOr.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="BitwiseOr.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="BitwiseOr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitwiseOr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitwiseOr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="BitwiseOr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitwiseOr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitwiseOr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="BitwiseOr.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="BitwiseOr.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="BitwiseOr.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="BitwiseOr.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="BitwiseOr.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="BitwiseOr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitwiseOr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitwiseOr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="BitwiseOr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitwiseOr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitwiseOr.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="BitwiseOr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitwiseOr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitwiseOr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitwiseOr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="BitwiseOr.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="BitwiseOr.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="BitwiseRightShift">
<input id="BitwiseRightShift-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">BitwiseRightShift</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="BitwiseRightShift-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#BitwiseRightShift"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseRightShift-3431"><a href="#BitwiseRightShift-3431"><span class="linenos">3431</span></a><span class="k">class</span> <span class="nc">BitwiseRightShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="BitwiseRightShift-3432"><a href="#BitwiseRightShift-3432"><span class="linenos">3432</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="BitwiseRightShift.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="BitwiseRightShift.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="BitwiseRightShift.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="BitwiseRightShift.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="BitwiseRightShift.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="BitwiseRightShift.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="BitwiseRightShift.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="BitwiseRightShift.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitwiseRightShift.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitwiseRightShift.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitwiseRightShift.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitwiseRightShift.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitwiseRightShift.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="BitwiseRightShift.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitwiseRightShift.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitwiseRightShift.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="BitwiseRightShift.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="BitwiseRightShift.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="BitwiseRightShift.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="BitwiseRightShift.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="BitwiseRightShift.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="BitwiseRightShift.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="BitwiseRightShift.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="BitwiseRightShift.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="BitwiseRightShift.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="BitwiseRightShift.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="BitwiseRightShift.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="BitwiseRightShift.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitwiseRightShift.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitwiseRightShift.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="BitwiseRightShift.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitwiseRightShift.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitwiseRightShift.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="BitwiseRightShift.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="BitwiseRightShift.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="BitwiseRightShift.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="BitwiseRightShift.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="BitwiseRightShift.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="BitwiseRightShift.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitwiseRightShift.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitwiseRightShift.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="BitwiseRightShift.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitwiseRightShift.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitwiseRightShift.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="BitwiseRightShift.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitwiseRightShift.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitwiseRightShift.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitwiseRightShift.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="BitwiseRightShift.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="BitwiseRightShift.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="BitwiseXor">
<input id="BitwiseXor-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">BitwiseXor</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="BitwiseXor-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#BitwiseXor"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseXor-3435"><a href="#BitwiseXor-3435"><span class="linenos">3435</span></a><span class="k">class</span> <span class="nc">BitwiseXor</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="BitwiseXor-3436"><a href="#BitwiseXor-3436"><span class="linenos">3436</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="BitwiseXor.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="BitwiseXor.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="BitwiseXor.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="BitwiseXor.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="BitwiseXor.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="BitwiseXor.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="BitwiseXor.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="BitwiseXor.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitwiseXor.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitwiseXor.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitwiseXor.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitwiseXor.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitwiseXor.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="BitwiseXor.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitwiseXor.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitwiseXor.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="BitwiseXor.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="BitwiseXor.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="BitwiseXor.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="BitwiseXor.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="BitwiseXor.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="BitwiseXor.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="BitwiseXor.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="BitwiseXor.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="BitwiseXor.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="BitwiseXor.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="BitwiseXor.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="BitwiseXor.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitwiseXor.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitwiseXor.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="BitwiseXor.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitwiseXor.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitwiseXor.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="BitwiseXor.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="BitwiseXor.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="BitwiseXor.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="BitwiseXor.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="BitwiseXor.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="BitwiseXor.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitwiseXor.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitwiseXor.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="BitwiseXor.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitwiseXor.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitwiseXor.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="BitwiseXor.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitwiseXor.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitwiseXor.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitwiseXor.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="BitwiseXor.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="BitwiseXor.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Div">
<input id="Div-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Div</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="Div-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Div"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Div-3439"><a href="#Div-3439"><span class="linenos">3439</span></a><span class="k">class</span> <span class="nc">Div</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="Div-3440"><a href="#Div-3440"><span class="linenos">3440</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Div.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Div.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Div.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Div.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Div.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Div.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Div.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Div.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Div.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Div.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Div.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Div.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Div.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Div.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Div.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Div.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Div.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Div.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Div.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Div.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Div.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Div.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Div.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Div.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Div.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Div.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Div.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Div.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Div.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Div.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Div.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Div.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Div.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Div.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Div.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Div.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Div.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Div.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Div.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Div.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Div.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Div.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Div.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Div.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Div.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Div.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Div.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Div.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Div.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Div.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Overlaps">
<input id="Overlaps-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Overlaps</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="Overlaps-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Overlaps"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Overlaps-3443"><a href="#Overlaps-3443"><span class="linenos">3443</span></a><span class="k">class</span> <span class="nc">Overlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="Overlaps-3444"><a href="#Overlaps-3444"><span class="linenos">3444</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Overlaps.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Overlaps.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Overlaps.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Overlaps.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Overlaps.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Overlaps.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Overlaps.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Overlaps.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Overlaps.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Overlaps.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Overlaps.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Overlaps.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Overlaps.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Overlaps.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Overlaps.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Overlaps.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Overlaps.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Overlaps.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Overlaps.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Overlaps.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Overlaps.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Overlaps.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Overlaps.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Overlaps.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Overlaps.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Overlaps.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Overlaps.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Overlaps.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Overlaps.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Overlaps.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Overlaps.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Overlaps.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Overlaps.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Overlaps.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Overlaps.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Overlaps.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Overlaps.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Overlaps.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Overlaps.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Overlaps.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Overlaps.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Overlaps.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Overlaps.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Overlaps.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Overlaps.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Overlaps.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Overlaps.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Overlaps.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Overlaps.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Overlaps.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Dot">
<input id="Dot-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Dot</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="Dot-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Dot"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Dot-3447"><a href="#Dot-3447"><span class="linenos">3447</span></a><span class="k">class</span> <span class="nc">Dot</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="Dot-3448"><a href="#Dot-3448"><span class="linenos">3448</span></a> <span class="nd">@property</span>
</span><span id="Dot-3449"><a href="#Dot-3449"><span class="linenos">3449</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Dot-3450"><a href="#Dot-3450"><span class="linenos">3450</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span>
</span><span id="Dot-3451"><a href="#Dot-3451"><span class="linenos">3451</span></a>
</span><span id="Dot-3452"><a href="#Dot-3452"><span class="linenos">3452</span></a> <span class="nd">@classmethod</span>
</span><span id="Dot-3453"><a href="#Dot-3453"><span class="linenos">3453</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
</span><span id="Dot-3454"><a href="#Dot-3454"><span class="linenos">3454</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Dot object with a sequence of expressions.&quot;&quot;&quot;</span>
</span><span id="Dot-3455"><a href="#Dot-3455"><span class="linenos">3455</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">:</span>
</span><span id="Dot-3456"><a href="#Dot-3456"><span class="linenos">3456</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
</span><span id="Dot-3457"><a href="#Dot-3457"><span class="linenos">3457</span></a>
</span><span id="Dot-3458"><a href="#Dot-3458"><span class="linenos">3458</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
</span><span id="Dot-3459"><a href="#Dot-3459"><span class="linenos">3459</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
</span><span id="Dot-3460"><a href="#Dot-3460"><span class="linenos">3460</span></a>
</span><span id="Dot-3461"><a href="#Dot-3461"><span class="linenos">3461</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span>
</span><span id="Dot-3462"><a href="#Dot-3462"><span class="linenos">3462</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
</span><span id="Dot-3463"><a href="#Dot-3463"><span class="linenos">3463</span></a>
</span><span id="Dot-3464"><a href="#Dot-3464"><span class="linenos">3464</span></a> <span class="k">return</span> <span class="n">dot</span>
</span></pre></div>
<div id="Dot.build" class="classattr">
<input id="Dot.build-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<div class="decorator">@classmethod</div>
<span class="def">def</span>
<span class="name">build</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expressions</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#Dot">sqlglot.expressions.Dot</a></span>:</span></span>
<label class="view-source-button" for="Dot.build-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Dot.build"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Dot.build-3452"><a href="#Dot.build-3452"><span class="linenos">3452</span></a> <span class="nd">@classmethod</span>
</span><span id="Dot.build-3453"><a href="#Dot.build-3453"><span class="linenos">3453</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Dot</span><span class="p">:</span>
</span><span id="Dot.build-3454"><a href="#Dot.build-3454"><span class="linenos">3454</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Dot object with a sequence of expressions.&quot;&quot;&quot;</span>
</span><span id="Dot.build-3455"><a href="#Dot.build-3455"><span class="linenos">3455</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">2</span><span class="p">:</span>
</span><span id="Dot.build-3456"><a href="#Dot.build-3456"><span class="linenos">3456</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Dot requires &gt;= 2 expressions.&quot;</span><span class="p">)</span>
</span><span id="Dot.build-3457"><a href="#Dot.build-3457"><span class="linenos">3457</span></a>
</span><span id="Dot.build-3458"><a href="#Dot.build-3458"><span class="linenos">3458</span></a> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span> <span class="o">=</span> <span class="n">expressions</span>
</span><span id="Dot.build-3459"><a href="#Dot.build-3459"><span class="linenos">3459</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">a</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">b</span><span class="p">)</span>
</span><span id="Dot.build-3460"><a href="#Dot.build-3460"><span class="linenos">3460</span></a>
</span><span id="Dot.build-3461"><a href="#Dot.build-3461"><span class="linenos">3461</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span>
</span><span id="Dot.build-3462"><a href="#Dot.build-3462"><span class="linenos">3462</span></a> <span class="n">dot</span> <span class="o">=</span> <span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dot</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span>
</span><span id="Dot.build-3463"><a href="#Dot.build-3463"><span class="linenos">3463</span></a>
</span><span id="Dot.build-3464"><a href="#Dot.build-3464"><span class="linenos">3464</span></a> <span class="k">return</span> <span class="n">dot</span>
</span></pre></div>
<div class="docstring"><p>Build a Dot object with a sequence of expressions.</p>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Dot.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Dot.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Dot.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Dot.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Dot.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Dot.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Dot.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Dot.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Dot.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Dot.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Dot.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Dot.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Dot.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Dot.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Dot.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Dot.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Dot.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Dot.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Dot.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Dot.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Dot.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Dot.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Dot.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Dot.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Dot.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Dot.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Dot.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Dot.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Dot.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Dot.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Dot.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Dot.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Dot.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Dot.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Dot.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Dot.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Dot.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Dot.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Dot.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Dot.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Dot.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Dot.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Dot.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Dot.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Dot.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Dot.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Dot.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Dot.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Dot.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Dot.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="DPipe">
<input id="DPipe-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DPipe</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="DPipe-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DPipe"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DPipe-3467"><a href="#DPipe-3467"><span class="linenos">3467</span></a><span class="k">class</span> <span class="nc">DPipe</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="DPipe-3468"><a href="#DPipe-3468"><span class="linenos">3468</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DPipe.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DPipe.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DPipe.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DPipe.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DPipe.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DPipe.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DPipe.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DPipe.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DPipe.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DPipe.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DPipe.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DPipe.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DPipe.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DPipe.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DPipe.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DPipe.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DPipe.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DPipe.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DPipe.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DPipe.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DPipe.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DPipe.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DPipe.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DPipe.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DPipe.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DPipe.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DPipe.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DPipe.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DPipe.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DPipe.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DPipe.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DPipe.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DPipe.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DPipe.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DPipe.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DPipe.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DPipe.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DPipe.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DPipe.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DPipe.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DPipe.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DPipe.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DPipe.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DPipe.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DPipe.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DPipe.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DPipe.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DPipe.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DPipe.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DPipe.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="EQ">
<input id="EQ-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">EQ</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="EQ-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#EQ"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="EQ-3471"><a href="#EQ-3471"><span class="linenos">3471</span></a><span class="k">class</span> <span class="nc">EQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="EQ-3472"><a href="#EQ-3472"><span class="linenos">3472</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="EQ.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="EQ.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="EQ.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="EQ.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="EQ.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="EQ.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="EQ.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="EQ.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="EQ.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="EQ.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="EQ.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="EQ.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="EQ.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="EQ.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="EQ.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="EQ.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="EQ.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="EQ.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="EQ.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="EQ.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="EQ.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="EQ.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="EQ.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="EQ.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="EQ.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="EQ.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="EQ.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="EQ.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="EQ.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="EQ.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="EQ.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="EQ.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="EQ.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="EQ.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="EQ.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="EQ.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="EQ.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="EQ.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="EQ.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="EQ.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="EQ.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="EQ.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="EQ.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="EQ.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="EQ.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="EQ.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="EQ.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="EQ.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="EQ.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="EQ.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="NullSafeEQ">
<input id="NullSafeEQ-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">NullSafeEQ</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="NullSafeEQ-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#NullSafeEQ"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeEQ-3475"><a href="#NullSafeEQ-3475"><span class="linenos">3475</span></a><span class="k">class</span> <span class="nc">NullSafeEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="NullSafeEQ-3476"><a href="#NullSafeEQ-3476"><span class="linenos">3476</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="NullSafeEQ.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="NullSafeEQ.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="NullSafeEQ.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="NullSafeEQ.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="NullSafeEQ.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="NullSafeEQ.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="NullSafeEQ.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="NullSafeEQ.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NullSafeEQ.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NullSafeEQ.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NullSafeEQ.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NullSafeEQ.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NullSafeEQ.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="NullSafeEQ.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NullSafeEQ.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NullSafeEQ.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="NullSafeEQ.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="NullSafeEQ.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="NullSafeEQ.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="NullSafeEQ.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="NullSafeEQ.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="NullSafeEQ.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="NullSafeEQ.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="NullSafeEQ.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="NullSafeEQ.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="NullSafeEQ.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="NullSafeEQ.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="NullSafeEQ.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NullSafeEQ.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NullSafeEQ.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="NullSafeEQ.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NullSafeEQ.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NullSafeEQ.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="NullSafeEQ.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="NullSafeEQ.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="NullSafeEQ.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="NullSafeEQ.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="NullSafeEQ.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="NullSafeEQ.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="NullSafeEQ.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="NullSafeEQ.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="NullSafeEQ.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="NullSafeEQ.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="NullSafeEQ.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="NullSafeEQ.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="NullSafeEQ.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="NullSafeEQ.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="NullSafeEQ.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="NullSafeEQ.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="NullSafeEQ.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="NullSafeNEQ">
<input id="NullSafeNEQ-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">NullSafeNEQ</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="NullSafeNEQ-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#NullSafeNEQ"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeNEQ-3479"><a href="#NullSafeNEQ-3479"><span class="linenos">3479</span></a><span class="k">class</span> <span class="nc">NullSafeNEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="NullSafeNEQ-3480"><a href="#NullSafeNEQ-3480"><span class="linenos">3480</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="NullSafeNEQ.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="NullSafeNEQ.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="NullSafeNEQ.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="NullSafeNEQ.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="NullSafeNEQ.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="NullSafeNEQ.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="NullSafeNEQ.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="NullSafeNEQ.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NullSafeNEQ.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NullSafeNEQ.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NullSafeNEQ.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NullSafeNEQ.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NullSafeNEQ.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="NullSafeNEQ.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NullSafeNEQ.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NullSafeNEQ.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="NullSafeNEQ.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="NullSafeNEQ.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="NullSafeNEQ.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="NullSafeNEQ.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="NullSafeNEQ.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="NullSafeNEQ.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="NullSafeNEQ.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="NullSafeNEQ.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="NullSafeNEQ.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="NullSafeNEQ.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="NullSafeNEQ.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="NullSafeNEQ.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NullSafeNEQ.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NullSafeNEQ.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="NullSafeNEQ.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NullSafeNEQ.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NullSafeNEQ.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="NullSafeNEQ.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="NullSafeNEQ.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="NullSafeNEQ.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="NullSafeNEQ.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="NullSafeNEQ.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="NullSafeNEQ.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="NullSafeNEQ.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="NullSafeNEQ.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="NullSafeNEQ.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="NullSafeNEQ.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="NullSafeNEQ.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="NullSafeNEQ.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="NullSafeNEQ.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="NullSafeNEQ.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="NullSafeNEQ.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="NullSafeNEQ.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="NullSafeNEQ.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Distance">
<input id="Distance-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Distance</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="Distance-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Distance"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Distance-3483"><a href="#Distance-3483"><span class="linenos">3483</span></a><span class="k">class</span> <span class="nc">Distance</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="Distance-3484"><a href="#Distance-3484"><span class="linenos">3484</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Distance.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Distance.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Distance.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Distance.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Distance.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Distance.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Distance.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Distance.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Distance.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Distance.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Distance.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Distance.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Distance.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Distance.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Distance.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Distance.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Distance.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Distance.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Distance.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Distance.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Distance.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Distance.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Distance.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Distance.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Distance.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Distance.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Distance.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Distance.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Distance.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Distance.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Distance.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Distance.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Distance.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Distance.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Distance.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Distance.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Distance.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Distance.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Distance.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Distance.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Distance.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Distance.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Distance.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Distance.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Distance.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Distance.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Distance.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Distance.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Distance.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Distance.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Escape">
<input id="Escape-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Escape</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="Escape-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Escape"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Escape-3487"><a href="#Escape-3487"><span class="linenos">3487</span></a><span class="k">class</span> <span class="nc">Escape</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="Escape-3488"><a href="#Escape-3488"><span class="linenos">3488</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Escape.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Escape.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Escape.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Escape.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Escape.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Escape.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Escape.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Escape.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Escape.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Escape.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Escape.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Escape.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Escape.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Escape.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Escape.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Escape.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Escape.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Escape.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Escape.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Escape.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Escape.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Escape.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Escape.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Escape.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Escape.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Escape.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Escape.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Escape.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Escape.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Escape.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Escape.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Escape.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Escape.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Escape.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Escape.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Escape.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Escape.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Escape.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Escape.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Escape.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Escape.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Escape.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Escape.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Escape.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Escape.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Escape.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Escape.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Escape.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Escape.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Escape.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Glob">
<input id="Glob-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Glob</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="Glob-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Glob"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Glob-3491"><a href="#Glob-3491"><span class="linenos">3491</span></a><span class="k">class</span> <span class="nc">Glob</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="Glob-3492"><a href="#Glob-3492"><span class="linenos">3492</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Glob.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Glob.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Glob.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Glob.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Glob.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Glob.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Glob.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Glob.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Glob.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Glob.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Glob.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Glob.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Glob.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Glob.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Glob.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Glob.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Glob.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Glob.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Glob.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Glob.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Glob.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Glob.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Glob.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Glob.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Glob.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Glob.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Glob.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Glob.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Glob.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Glob.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Glob.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Glob.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Glob.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Glob.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Glob.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Glob.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Glob.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Glob.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Glob.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Glob.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Glob.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Glob.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Glob.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Glob.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Glob.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Glob.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Glob.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Glob.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Glob.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Glob.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="GT">
<input id="GT-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">GT</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="GT-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#GT"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="GT-3495"><a href="#GT-3495"><span class="linenos">3495</span></a><span class="k">class</span> <span class="nc">GT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="GT-3496"><a href="#GT-3496"><span class="linenos">3496</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="GT.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="GT.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="GT.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="GT.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="GT.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="GT.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="GT.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="GT.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="GT.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="GT.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="GT.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="GT.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="GT.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="GT.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="GT.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="GT.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="GT.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="GT.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="GT.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="GT.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="GT.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="GT.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="GT.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="GT.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="GT.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="GT.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="GT.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="GT.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="GT.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="GT.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="GT.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="GT.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="GT.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="GT.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="GT.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="GT.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="GT.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="GT.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="GT.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="GT.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="GT.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="GT.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="GT.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="GT.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="GT.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="GT.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="GT.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="GT.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="GT.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="GT.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="GTE">
<input id="GTE-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">GTE</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="GTE-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#GTE"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="GTE-3499"><a href="#GTE-3499"><span class="linenos">3499</span></a><span class="k">class</span> <span class="nc">GTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="GTE-3500"><a href="#GTE-3500"><span class="linenos">3500</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="GTE.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="GTE.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="GTE.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="GTE.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="GTE.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="GTE.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="GTE.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="GTE.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="GTE.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="GTE.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="GTE.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="GTE.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="GTE.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="GTE.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="GTE.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="GTE.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="GTE.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="GTE.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="GTE.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="GTE.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="GTE.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="GTE.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="GTE.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="GTE.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="GTE.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="GTE.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="GTE.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="GTE.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="GTE.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="GTE.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="GTE.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="GTE.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="GTE.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="GTE.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="GTE.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="GTE.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="GTE.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="GTE.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="GTE.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="GTE.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="GTE.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="GTE.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="GTE.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="GTE.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="GTE.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="GTE.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="GTE.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="GTE.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="GTE.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="GTE.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ILike">
<input id="ILike-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ILike</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="ILike-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ILike"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ILike-3503"><a href="#ILike-3503"><span class="linenos">3503</span></a><span class="k">class</span> <span class="nc">ILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="ILike-3504"><a href="#ILike-3504"><span class="linenos">3504</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ILike.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ILike.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ILike.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ILike.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ILike.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ILike.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ILike.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ILike.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ILike.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ILike.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ILike.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ILike.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ILike.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ILike.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ILike.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ILike.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ILike.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ILike.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ILike.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ILike.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ILike.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ILike.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ILike.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ILike.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ILike.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ILike.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ILike.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ILike.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ILike.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ILike.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ILike.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ILike.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ILike.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ILike.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ILike.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ILike.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ILike.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ILike.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ILike.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ILike.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ILike.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ILike.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ILike.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ILike.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ILike.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ILike.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ILike.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ILike.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ILike.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ILike.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ILikeAny">
<input id="ILikeAny-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ILikeAny</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="ILikeAny-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ILikeAny"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ILikeAny-3507"><a href="#ILikeAny-3507"><span class="linenos">3507</span></a><span class="k">class</span> <span class="nc">ILikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="ILikeAny-3508"><a href="#ILikeAny-3508"><span class="linenos">3508</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ILikeAny.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ILikeAny.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ILikeAny.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ILikeAny.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ILikeAny.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ILikeAny.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ILikeAny.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ILikeAny.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ILikeAny.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ILikeAny.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ILikeAny.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ILikeAny.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ILikeAny.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ILikeAny.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ILikeAny.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ILikeAny.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ILikeAny.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ILikeAny.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ILikeAny.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ILikeAny.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ILikeAny.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ILikeAny.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ILikeAny.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ILikeAny.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ILikeAny.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ILikeAny.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ILikeAny.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ILikeAny.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ILikeAny.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ILikeAny.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ILikeAny.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ILikeAny.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ILikeAny.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ILikeAny.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ILikeAny.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ILikeAny.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ILikeAny.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ILikeAny.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ILikeAny.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ILikeAny.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ILikeAny.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ILikeAny.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ILikeAny.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ILikeAny.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ILikeAny.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ILikeAny.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ILikeAny.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ILikeAny.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ILikeAny.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ILikeAny.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="IntDiv">
<input id="IntDiv-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">IntDiv</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="IntDiv-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#IntDiv"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="IntDiv-3511"><a href="#IntDiv-3511"><span class="linenos">3511</span></a><span class="k">class</span> <span class="nc">IntDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="IntDiv-3512"><a href="#IntDiv-3512"><span class="linenos">3512</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="IntDiv.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="IntDiv.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="IntDiv.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="IntDiv.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="IntDiv.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="IntDiv.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="IntDiv.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="IntDiv.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="IntDiv.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="IntDiv.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="IntDiv.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IntDiv.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IntDiv.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="IntDiv.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="IntDiv.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="IntDiv.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="IntDiv.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="IntDiv.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="IntDiv.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="IntDiv.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="IntDiv.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="IntDiv.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="IntDiv.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="IntDiv.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="IntDiv.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="IntDiv.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="IntDiv.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="IntDiv.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IntDiv.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IntDiv.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="IntDiv.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IntDiv.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IntDiv.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="IntDiv.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="IntDiv.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="IntDiv.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="IntDiv.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="IntDiv.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="IntDiv.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="IntDiv.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="IntDiv.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="IntDiv.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="IntDiv.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="IntDiv.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="IntDiv.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="IntDiv.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="IntDiv.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="IntDiv.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="IntDiv.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="IntDiv.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Is">
<input id="Is-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Is</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="Is-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Is"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Is-3515"><a href="#Is-3515"><span class="linenos">3515</span></a><span class="k">class</span> <span class="nc">Is</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="Is-3516"><a href="#Is-3516"><span class="linenos">3516</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Is.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Is.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Is.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Is.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Is.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Is.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Is.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Is.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Is.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Is.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Is.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Is.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Is.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Is.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Is.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Is.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Is.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Is.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Is.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Is.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Is.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Is.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Is.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Is.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Is.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Is.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Is.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Is.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Is.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Is.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Is.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Is.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Is.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Is.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Is.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Is.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Is.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Is.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Is.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Is.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Is.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Is.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Is.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Is.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Is.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Is.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Is.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Is.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Is.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Is.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Kwarg">
<input id="Kwarg-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Kwarg</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="Kwarg-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Kwarg"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Kwarg-3519"><a href="#Kwarg-3519"><span class="linenos">3519</span></a><span class="k">class</span> <span class="nc">Kwarg</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="Kwarg-3520"><a href="#Kwarg-3520"><span class="linenos">3520</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Kwarg in special functions like func(kwarg =&gt; y).&quot;&quot;&quot;</span>
</span></pre></div>
<div class="docstring"><p>Kwarg in special functions like func(kwarg =&gt; y).</p>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Kwarg.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Kwarg.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Kwarg.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Kwarg.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Kwarg.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Kwarg.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Kwarg.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Kwarg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Kwarg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Kwarg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Kwarg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Kwarg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Kwarg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Kwarg.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Kwarg.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Kwarg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Kwarg.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Kwarg.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Kwarg.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Kwarg.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Kwarg.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Kwarg.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Kwarg.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Kwarg.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Kwarg.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Kwarg.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Kwarg.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Kwarg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Kwarg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Kwarg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Kwarg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Kwarg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Kwarg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Kwarg.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Kwarg.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Kwarg.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Kwarg.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Kwarg.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Kwarg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Kwarg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Kwarg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Kwarg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Kwarg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Kwarg.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Kwarg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Kwarg.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Kwarg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Kwarg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Kwarg.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Kwarg.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Like">
<input id="Like-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Like</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="Like-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Like"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Like-3523"><a href="#Like-3523"><span class="linenos">3523</span></a><span class="k">class</span> <span class="nc">Like</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="Like-3524"><a href="#Like-3524"><span class="linenos">3524</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Like.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Like.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Like.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Like.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Like.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Like.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Like.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Like.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Like.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Like.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Like.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Like.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Like.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Like.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Like.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Like.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Like.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Like.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Like.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Like.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Like.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Like.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Like.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Like.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Like.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Like.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Like.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Like.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Like.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Like.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Like.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Like.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Like.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Like.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Like.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Like.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Like.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Like.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Like.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Like.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Like.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Like.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Like.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Like.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Like.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Like.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Like.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Like.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Like.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Like.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="LikeAny">
<input id="LikeAny-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">LikeAny</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="LikeAny-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#LikeAny"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="LikeAny-3527"><a href="#LikeAny-3527"><span class="linenos">3527</span></a><span class="k">class</span> <span class="nc">LikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="LikeAny-3528"><a href="#LikeAny-3528"><span class="linenos">3528</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="LikeAny.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="LikeAny.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="LikeAny.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="LikeAny.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="LikeAny.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="LikeAny.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="LikeAny.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="LikeAny.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LikeAny.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LikeAny.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LikeAny.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LikeAny.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LikeAny.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="LikeAny.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LikeAny.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LikeAny.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="LikeAny.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="LikeAny.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="LikeAny.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="LikeAny.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="LikeAny.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="LikeAny.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="LikeAny.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="LikeAny.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="LikeAny.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="LikeAny.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="LikeAny.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="LikeAny.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LikeAny.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LikeAny.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="LikeAny.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LikeAny.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LikeAny.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="LikeAny.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="LikeAny.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="LikeAny.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="LikeAny.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="LikeAny.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="LikeAny.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="LikeAny.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="LikeAny.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="LikeAny.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="LikeAny.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="LikeAny.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="LikeAny.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="LikeAny.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="LikeAny.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="LikeAny.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="LikeAny.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="LikeAny.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="LT">
<input id="LT-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">LT</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="LT-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#LT"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="LT-3531"><a href="#LT-3531"><span class="linenos">3531</span></a><span class="k">class</span> <span class="nc">LT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="LT-3532"><a href="#LT-3532"><span class="linenos">3532</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="LT.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="LT.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="LT.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="LT.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="LT.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="LT.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="LT.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="LT.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LT.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LT.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LT.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LT.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LT.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="LT.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LT.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LT.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="LT.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="LT.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="LT.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="LT.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="LT.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="LT.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="LT.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="LT.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="LT.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="LT.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="LT.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="LT.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LT.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LT.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="LT.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LT.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LT.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="LT.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="LT.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="LT.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="LT.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="LT.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="LT.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="LT.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="LT.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="LT.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="LT.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="LT.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="LT.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="LT.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="LT.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="LT.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="LT.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="LT.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="LTE">
<input id="LTE-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">LTE</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="LTE-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#LTE"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="LTE-3535"><a href="#LTE-3535"><span class="linenos">3535</span></a><span class="k">class</span> <span class="nc">LTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="LTE-3536"><a href="#LTE-3536"><span class="linenos">3536</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="LTE.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="LTE.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="LTE.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="LTE.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="LTE.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="LTE.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="LTE.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="LTE.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LTE.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LTE.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LTE.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LTE.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LTE.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="LTE.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LTE.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LTE.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="LTE.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="LTE.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="LTE.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="LTE.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="LTE.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="LTE.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="LTE.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="LTE.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="LTE.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="LTE.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="LTE.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="LTE.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LTE.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LTE.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="LTE.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LTE.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LTE.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="LTE.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="LTE.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="LTE.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="LTE.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="LTE.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="LTE.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="LTE.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="LTE.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="LTE.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="LTE.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="LTE.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="LTE.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="LTE.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="LTE.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="LTE.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="LTE.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="LTE.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Mod">
<input id="Mod-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Mod</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="Mod-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Mod"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Mod-3539"><a href="#Mod-3539"><span class="linenos">3539</span></a><span class="k">class</span> <span class="nc">Mod</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="Mod-3540"><a href="#Mod-3540"><span class="linenos">3540</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Mod.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Mod.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Mod.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Mod.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Mod.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Mod.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Mod.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Mod.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Mod.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Mod.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Mod.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Mod.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Mod.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Mod.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Mod.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Mod.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Mod.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Mod.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Mod.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Mod.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Mod.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Mod.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Mod.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Mod.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Mod.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Mod.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Mod.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Mod.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Mod.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Mod.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Mod.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Mod.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Mod.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Mod.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Mod.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Mod.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Mod.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Mod.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Mod.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Mod.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Mod.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Mod.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Mod.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Mod.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Mod.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Mod.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Mod.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Mod.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Mod.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Mod.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Mul">
<input id="Mul-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Mul</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="Mul-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Mul"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Mul-3543"><a href="#Mul-3543"><span class="linenos">3543</span></a><span class="k">class</span> <span class="nc">Mul</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="Mul-3544"><a href="#Mul-3544"><span class="linenos">3544</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Mul.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Mul.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Mul.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Mul.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Mul.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Mul.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Mul.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Mul.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Mul.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Mul.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Mul.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Mul.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Mul.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Mul.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Mul.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Mul.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Mul.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Mul.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Mul.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Mul.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Mul.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Mul.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Mul.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Mul.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Mul.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Mul.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Mul.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Mul.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Mul.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Mul.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Mul.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Mul.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Mul.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Mul.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Mul.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Mul.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Mul.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Mul.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Mul.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Mul.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Mul.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Mul.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Mul.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Mul.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Mul.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Mul.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Mul.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Mul.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Mul.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Mul.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="NEQ">
<input id="NEQ-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">NEQ</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="NEQ-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#NEQ"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="NEQ-3547"><a href="#NEQ-3547"><span class="linenos">3547</span></a><span class="k">class</span> <span class="nc">NEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="NEQ-3548"><a href="#NEQ-3548"><span class="linenos">3548</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="NEQ.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="NEQ.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="NEQ.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="NEQ.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="NEQ.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="NEQ.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="NEQ.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="NEQ.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NEQ.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NEQ.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NEQ.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NEQ.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NEQ.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="NEQ.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NEQ.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NEQ.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="NEQ.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="NEQ.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="NEQ.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="NEQ.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="NEQ.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="NEQ.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="NEQ.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="NEQ.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="NEQ.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="NEQ.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="NEQ.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="NEQ.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NEQ.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NEQ.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="NEQ.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NEQ.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NEQ.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="NEQ.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="NEQ.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="NEQ.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="NEQ.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="NEQ.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="NEQ.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="NEQ.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="NEQ.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="NEQ.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="NEQ.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="NEQ.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="NEQ.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="NEQ.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="NEQ.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="NEQ.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="NEQ.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="NEQ.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="SimilarTo">
<input id="SimilarTo-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SimilarTo</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="SimilarTo-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SimilarTo"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SimilarTo-3551"><a href="#SimilarTo-3551"><span class="linenos">3551</span></a><span class="k">class</span> <span class="nc">SimilarTo</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span>
</span><span id="SimilarTo-3552"><a href="#SimilarTo-3552"><span class="linenos">3552</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SimilarTo.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SimilarTo.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SimilarTo.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SimilarTo.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SimilarTo.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SimilarTo.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SimilarTo.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SimilarTo.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SimilarTo.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SimilarTo.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SimilarTo.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SimilarTo.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SimilarTo.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SimilarTo.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SimilarTo.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SimilarTo.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SimilarTo.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SimilarTo.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SimilarTo.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SimilarTo.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SimilarTo.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SimilarTo.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SimilarTo.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SimilarTo.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SimilarTo.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SimilarTo.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SimilarTo.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SimilarTo.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SimilarTo.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SimilarTo.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SimilarTo.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SimilarTo.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SimilarTo.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SimilarTo.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SimilarTo.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SimilarTo.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SimilarTo.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SimilarTo.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="SimilarTo.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SimilarTo.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SimilarTo.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="SimilarTo.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SimilarTo.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SimilarTo.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="SimilarTo.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SimilarTo.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SimilarTo.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SimilarTo.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="SimilarTo.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="SimilarTo.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Slice">
<input id="Slice-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Slice</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="Slice-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Slice"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Slice-3555"><a href="#Slice-3555"><span class="linenos">3555</span></a><span class="k">class</span> <span class="nc">Slice</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="Slice-3556"><a href="#Slice-3556"><span class="linenos">3556</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Slice.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Slice.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Slice.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Slice.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Slice.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Slice.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Slice.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Slice.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Slice.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Slice.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Slice.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Slice.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Slice.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Slice.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Slice.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Slice.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Slice.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Slice.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Slice.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Slice.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Slice.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Slice.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Slice.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Slice.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Slice.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Slice.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Slice.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Slice.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Slice.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Slice.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Slice.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Slice.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Slice.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Slice.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Slice.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Slice.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Slice.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Slice.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Slice.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Slice.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Slice.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Slice.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Slice.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Slice.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Slice.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Slice.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Slice.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Slice.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Slice.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Slice.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Sub">
<input id="Sub-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Sub</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="Sub-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Sub"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Sub-3559"><a href="#Sub-3559"><span class="linenos">3559</span></a><span class="k">class</span> <span class="nc">Sub</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="Sub-3560"><a href="#Sub-3560"><span class="linenos">3560</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Sub.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Sub.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Sub.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Sub.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Sub.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Sub.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Sub.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Sub.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Sub.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Sub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Sub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Sub.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Sub.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Sub.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Sub.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Sub.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Sub.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Sub.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Sub.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Sub.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Sub.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Sub.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Sub.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Sub.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Sub.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Sub.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Sub.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Sub.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Sub.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Sub.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Sub.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Sub.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Sub.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Sub.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Sub.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Sub.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Sub.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Sub.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Sub.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Sub.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Sub.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Sub.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Sub.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Sub.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Sub.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Sub.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Sub.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Sub.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Sub.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Sub.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ArrayOverlaps">
<input id="ArrayOverlaps-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ArrayOverlaps</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="ArrayOverlaps-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArrayOverlaps"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ArrayOverlaps-3563"><a href="#ArrayOverlaps-3563"><span class="linenos">3563</span></a><span class="k">class</span> <span class="nc">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="ArrayOverlaps-3564"><a href="#ArrayOverlaps-3564"><span class="linenos">3564</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ArrayOverlaps.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ArrayOverlaps.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ArrayOverlaps.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ArrayOverlaps.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ArrayOverlaps.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ArrayOverlaps.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ArrayOverlaps.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ArrayOverlaps.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayOverlaps.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayOverlaps.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayOverlaps.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayOverlaps.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayOverlaps.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArrayOverlaps.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayOverlaps.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayOverlaps.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ArrayOverlaps.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ArrayOverlaps.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ArrayOverlaps.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ArrayOverlaps.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ArrayOverlaps.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ArrayOverlaps.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ArrayOverlaps.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ArrayOverlaps.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ArrayOverlaps.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ArrayOverlaps.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ArrayOverlaps.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ArrayOverlaps.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayOverlaps.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayOverlaps.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ArrayOverlaps.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayOverlaps.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayOverlaps.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ArrayOverlaps.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ArrayOverlaps.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ArrayOverlaps.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ArrayOverlaps.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ArrayOverlaps.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ArrayOverlaps.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayOverlaps.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayOverlaps.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ArrayOverlaps.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayOverlaps.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayOverlaps.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ArrayOverlaps.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayOverlaps.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayOverlaps.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayOverlaps.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ArrayOverlaps.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ArrayOverlaps.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Unary">
<input id="Unary-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Unary</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
<label class="view-source-button" for="Unary-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Unary"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Unary-3569"><a href="#Unary-3569"><span class="linenos">3569</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="Unary-3570"><a href="#Unary-3570"><span class="linenos">3570</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Unary.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Unary.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Unary.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Unary.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Unary.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Unary.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Unary.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Unary.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Unary.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Unary.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Unary.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Unary.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Unary.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Unary.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Unary.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Unary.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Unary.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Unary.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Unary.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Unary.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Unary.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Unary.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Unary.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Unary.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Unary.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Unary.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Unary.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Unary.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Unary.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Unary.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Unary.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Unary.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Unary.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Unary.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Unary.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Unary.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Unary.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Unary.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Unary.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Unary.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Unary.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Unary.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Unary.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Unary.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Unary.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Unary.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Unary.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Unary.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Unary.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Unary.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="BitwiseNot">
<input id="BitwiseNot-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">BitwiseNot</span><wbr>(<span class="base"><a href="#Unary">Unary</a></span>):
<label class="view-source-button" for="BitwiseNot-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#BitwiseNot"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseNot-3573"><a href="#BitwiseNot-3573"><span class="linenos">3573</span></a><span class="k">class</span> <span class="nc">BitwiseNot</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
</span><span id="BitwiseNot-3574"><a href="#BitwiseNot-3574"><span class="linenos">3574</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="BitwiseNot.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="BitwiseNot.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="BitwiseNot.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="BitwiseNot.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="BitwiseNot.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="BitwiseNot.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="BitwiseNot.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="BitwiseNot.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="BitwiseNot.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="BitwiseNot.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="BitwiseNot.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="BitwiseNot.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="BitwiseNot.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="BitwiseNot.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="BitwiseNot.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="BitwiseNot.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="BitwiseNot.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="BitwiseNot.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="BitwiseNot.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="BitwiseNot.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="BitwiseNot.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="BitwiseNot.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="BitwiseNot.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="BitwiseNot.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="BitwiseNot.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="BitwiseNot.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="BitwiseNot.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="BitwiseNot.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="BitwiseNot.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="BitwiseNot.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="BitwiseNot.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="BitwiseNot.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="BitwiseNot.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="BitwiseNot.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="BitwiseNot.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="BitwiseNot.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="BitwiseNot.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="BitwiseNot.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="BitwiseNot.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="BitwiseNot.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="BitwiseNot.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="BitwiseNot.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="BitwiseNot.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="BitwiseNot.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="BitwiseNot.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="BitwiseNot.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="BitwiseNot.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="BitwiseNot.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="BitwiseNot.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="BitwiseNot.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Not">
<input id="Not-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Not</span><wbr>(<span class="base"><a href="#Unary">Unary</a></span>):
<label class="view-source-button" for="Not-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Not"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Not-3577"><a href="#Not-3577"><span class="linenos">3577</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
</span><span id="Not-3578"><a href="#Not-3578"><span class="linenos">3578</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Not.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Not.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Not.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Not.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Not.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Not.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Not.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Not.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Not.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Not.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Not.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Not.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Not.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Not.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Not.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Not.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Not.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Not.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Not.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Not.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Not.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Not.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Not.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Not.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Not.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Not.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Not.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Not.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Not.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Not.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Not.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Not.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Not.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Not.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Not.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Not.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Not.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Not.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Not.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Not.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Not.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Not.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Not.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Not.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Not.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Not.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Not.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Not.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Not.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Not.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Paren">
<input id="Paren-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Paren</span><wbr>(<span class="base"><a href="#Unary">Unary</a></span>):
<label class="view-source-button" for="Paren-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Paren"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Paren-3581"><a href="#Paren-3581"><span class="linenos">3581</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
</span><span id="Paren-3582"><a href="#Paren-3582"><span class="linenos">3582</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;with&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Paren.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Paren.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Paren.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Paren.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Paren.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Paren.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Paren.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Paren.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Paren.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Paren.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Paren.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Paren.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Paren.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Paren.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Paren.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Paren.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Paren.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Paren.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Paren.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Paren.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Paren.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Paren.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Paren.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Paren.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Paren.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Paren.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Paren.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Paren.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Paren.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Paren.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Paren.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Paren.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Paren.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Paren.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Paren.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Paren.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Paren.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Paren.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Paren.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Paren.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Paren.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Paren.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Paren.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Paren.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Paren.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Paren.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Paren.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Paren.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Paren.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Paren.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Neg">
<input id="Neg-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Neg</span><wbr>(<span class="base"><a href="#Unary">Unary</a></span>):
<label class="view-source-button" for="Neg-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Neg"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Neg-3585"><a href="#Neg-3585"><span class="linenos">3585</span></a><span class="k">class</span> <span class="nc">Neg</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span>
</span><span id="Neg-3586"><a href="#Neg-3586"><span class="linenos">3586</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Neg.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Neg.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Neg.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Neg.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Neg.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Neg.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Neg.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Neg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Neg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Neg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Neg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Neg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Neg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Neg.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Neg.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Neg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Neg.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Neg.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Neg.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Neg.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Neg.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Neg.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Neg.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Neg.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Neg.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Neg.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Neg.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Neg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Neg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Neg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Neg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Neg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Neg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Neg.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Neg.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Neg.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Neg.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Neg.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Neg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Neg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Neg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Neg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Neg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Neg.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Neg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Neg.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Neg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Neg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Neg.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Neg.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Alias">
<input id="Alias-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Alias</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Alias-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Alias"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Alias-3589"><a href="#Alias-3589"><span class="linenos">3589</span></a><span class="k">class</span> <span class="nc">Alias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Alias-3590"><a href="#Alias-3590"><span class="linenos">3590</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;alias&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Alias-3591"><a href="#Alias-3591"><span class="linenos">3591</span></a>
</span><span id="Alias-3592"><a href="#Alias-3592"><span class="linenos">3592</span></a> <span class="nd">@property</span>
</span><span id="Alias-3593"><a href="#Alias-3593"><span class="linenos">3593</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Alias-3594"><a href="#Alias-3594"><span class="linenos">3594</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span>
</span></pre></div>
<div id="Alias.output_name" class="classattr">
<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
</div>
<a class="headerlink" href="#Alias.output_name"></a>
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT a&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;a&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT b AS c&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;c&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT 1 + 2&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;&#39;</span>
</code></pre>
</div>
</blockquote>
</div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Alias.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Alias.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Alias.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Alias.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Alias.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Alias.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Alias.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Alias.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Alias.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Alias.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Alias.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Alias.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Alias.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Alias.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Alias.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Alias.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Alias.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Alias.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Alias.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Alias.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Alias.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Alias.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Alias.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Alias.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Alias.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Alias.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Alias.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Alias.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Alias.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Alias.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Alias.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Alias.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Alias.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Alias.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Alias.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Alias.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Alias.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Aliases">
<input id="Aliases-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Aliases</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Aliases-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Aliases"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Aliases-3597"><a href="#Aliases-3597"><span class="linenos">3597</span></a><span class="k">class</span> <span class="nc">Aliases</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Aliases-3598"><a href="#Aliases-3598"><span class="linenos">3598</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="Aliases-3599"><a href="#Aliases-3599"><span class="linenos">3599</span></a>
</span><span id="Aliases-3600"><a href="#Aliases-3600"><span class="linenos">3600</span></a> <span class="nd">@property</span>
</span><span id="Aliases-3601"><a href="#Aliases-3601"><span class="linenos">3601</span></a> <span class="k">def</span> <span class="nf">aliases</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
</span><span id="Aliases-3602"><a href="#Aliases-3602"><span class="linenos">3602</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Aliases.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Aliases.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Aliases.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Aliases.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Aliases.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Aliases.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Aliases.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Aliases.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Aliases.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Aliases.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Aliases.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Aliases.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Aliases.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Aliases.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Aliases.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Aliases.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Aliases.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Aliases.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Aliases.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Aliases.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Aliases.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Aliases.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Aliases.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Aliases.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Aliases.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Aliases.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Aliases.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Aliases.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Aliases.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Aliases.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Aliases.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Aliases.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Aliases.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Aliases.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Aliases.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Aliases.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Aliases.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Aliases.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="AtTimeZone">
<input id="AtTimeZone-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">AtTimeZone</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="AtTimeZone-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#AtTimeZone"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="AtTimeZone-3605"><a href="#AtTimeZone-3605"><span class="linenos">3605</span></a><span class="k">class</span> <span class="nc">AtTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="AtTimeZone-3606"><a href="#AtTimeZone-3606"><span class="linenos">3606</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="AtTimeZone.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="AtTimeZone.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="AtTimeZone.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="AtTimeZone.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="AtTimeZone.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="AtTimeZone.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="AtTimeZone.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="AtTimeZone.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AtTimeZone.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AtTimeZone.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AtTimeZone.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AtTimeZone.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AtTimeZone.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="AtTimeZone.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AtTimeZone.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AtTimeZone.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="AtTimeZone.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="AtTimeZone.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="AtTimeZone.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="AtTimeZone.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="AtTimeZone.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="AtTimeZone.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="AtTimeZone.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="AtTimeZone.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="AtTimeZone.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="AtTimeZone.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="AtTimeZone.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="AtTimeZone.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AtTimeZone.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AtTimeZone.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="AtTimeZone.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AtTimeZone.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AtTimeZone.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="AtTimeZone.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="AtTimeZone.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="AtTimeZone.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="AtTimeZone.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="AtTimeZone.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Between">
<input id="Between-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Between</span><wbr>(<span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="Between-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Between"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Between-3609"><a href="#Between-3609"><span class="linenos">3609</span></a><span class="k">class</span> <span class="nc">Between</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
</span><span id="Between-3610"><a href="#Between-3610"><span class="linenos">3610</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;low&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;high&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Between.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Between.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Between.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Between.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Between.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Between.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Between.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Between.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Between.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Between.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Between.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Between.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Between.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Between.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Between.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Between.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Between.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Between.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Between.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Between.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Between.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Between.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Between.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Between.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Between.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Between.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Between.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Between.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Between.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Between.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Between.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Between.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Between.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Between.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Between.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Between.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Between.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Between.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Between.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Between.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Between.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Between.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Between.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Between.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Between.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Between.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Between.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Between.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Between.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Between.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Bracket">
<input id="Bracket-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Bracket</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
<label class="view-source-button" for="Bracket-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Bracket"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Bracket-3613"><a href="#Bracket-3613"><span class="linenos">3613</span></a><span class="k">class</span> <span class="nc">Bracket</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="Bracket-3614"><a href="#Bracket-3614"><span class="linenos">3614</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Bracket.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Bracket.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Bracket.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Bracket.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Bracket.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Bracket.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Bracket.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Bracket.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Bracket.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Bracket.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Bracket.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Bracket.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Bracket.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Bracket.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Bracket.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Bracket.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Bracket.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Bracket.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Bracket.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Bracket.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Bracket.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Bracket.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Bracket.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Bracket.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Bracket.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Bracket.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Bracket.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Bracket.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Bracket.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Bracket.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Bracket.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Bracket.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Bracket.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Bracket.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Bracket.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Bracket.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Bracket.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Bracket.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Bracket.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Bracket.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Bracket.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Bracket.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Bracket.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Bracket.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Bracket.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Bracket.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Bracket.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Bracket.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Bracket.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Bracket.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Distinct">
<input id="Distinct-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Distinct</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Distinct-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Distinct"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Distinct-3617"><a href="#Distinct-3617"><span class="linenos">3617</span></a><span class="k">class</span> <span class="nc">Distinct</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Distinct-3618"><a href="#Distinct-3618"><span class="linenos">3618</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Distinct.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Distinct.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Distinct.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Distinct.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Distinct.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Distinct.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Distinct.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Distinct.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Distinct.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Distinct.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Distinct.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Distinct.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Distinct.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Distinct.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Distinct.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Distinct.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Distinct.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Distinct.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Distinct.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Distinct.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Distinct.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Distinct.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Distinct.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Distinct.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Distinct.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Distinct.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Distinct.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Distinct.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Distinct.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Distinct.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Distinct.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Distinct.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Distinct.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Distinct.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Distinct.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Distinct.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Distinct.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Distinct.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="In">
<input id="In-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">In</span><wbr>(<span class="base"><a href="#Predicate">Predicate</a></span>):
<label class="view-source-button" for="In-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#In"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="In-3621"><a href="#In-3621"><span class="linenos">3621</span></a><span class="k">class</span> <span class="nc">In</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span>
</span><span id="In-3622"><a href="#In-3622"><span class="linenos">3622</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="In-3623"><a href="#In-3623"><span class="linenos">3623</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="In-3624"><a href="#In-3624"><span class="linenos">3624</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="In-3625"><a href="#In-3625"><span class="linenos">3625</span></a> <span class="s2">&quot;query&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="In-3626"><a href="#In-3626"><span class="linenos">3626</span></a> <span class="s2">&quot;unnest&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="In-3627"><a href="#In-3627"><span class="linenos">3627</span></a> <span class="s2">&quot;field&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="In-3628"><a href="#In-3628"><span class="linenos">3628</span></a> <span class="s2">&quot;is_global&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="In-3629"><a href="#In-3629"><span class="linenos">3629</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="In.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="In.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="In.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="In.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="In.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="In.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="In.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="In.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="In.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="In.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="In.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="In.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="In.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="In.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="In.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="In.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="In.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="In.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="In.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="In.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="In.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="In.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="In.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="In.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="In.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="In.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="In.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="In.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="In.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="In.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="In.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="In.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="In.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="In.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="In.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="In.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="In.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="In.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="In.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="In.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="In.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="In.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="In.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="In.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="In.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="In.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="In.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="In.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="In.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="In.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimeUnit">
<input id="TimeUnit-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimeUnit</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="TimeUnit-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimeUnit"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit-3632"><a href="#TimeUnit-3632"><span class="linenos">3632</span></a><span class="k">class</span> <span class="nc">TimeUnit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="TimeUnit-3633"><a href="#TimeUnit-3633"><span class="linenos">3633</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Automatically converts unit arg into a var.&quot;&quot;&quot;</span>
</span><span id="TimeUnit-3634"><a href="#TimeUnit-3634"><span class="linenos">3634</span></a>
</span><span id="TimeUnit-3635"><a href="#TimeUnit-3635"><span class="linenos">3635</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="TimeUnit-3636"><a href="#TimeUnit-3636"><span class="linenos">3636</span></a>
</span><span id="TimeUnit-3637"><a href="#TimeUnit-3637"><span class="linenos">3637</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span>
</span><span id="TimeUnit-3638"><a href="#TimeUnit-3638"><span class="linenos">3638</span></a> <span class="n">unit</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;unit&quot;</span><span class="p">)</span>
</span><span id="TimeUnit-3639"><a href="#TimeUnit-3639"><span class="linenos">3639</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
</span><span id="TimeUnit-3640"><a href="#TimeUnit-3640"><span class="linenos">3640</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</span><span id="TimeUnit-3641"><a href="#TimeUnit-3641"><span class="linenos">3641</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span>
</span><span id="TimeUnit-3642"><a href="#TimeUnit-3642"><span class="linenos">3642</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
</span><span id="TimeUnit-3643"><a href="#TimeUnit-3643"><span class="linenos">3643</span></a>
</span><span id="TimeUnit-3644"><a href="#TimeUnit-3644"><span class="linenos">3644</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Automatically converts unit arg into a var.</p>
</div>
<div id="TimeUnit.__init__" class="classattr">
<input id="TimeUnit.__init__-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="name">TimeUnit</span><span class="signature pdoc-code condensed">(<span class="param"><span class="o">**</span><span class="n">args</span></span>)</span>
<label class="view-source-button" for="TimeUnit.__init__-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimeUnit.__init__"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit.__init__-3637"><a href="#TimeUnit.__init__-3637"><span class="linenos">3637</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span>
</span><span id="TimeUnit.__init__-3638"><a href="#TimeUnit.__init__-3638"><span class="linenos">3638</span></a> <span class="n">unit</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;unit&quot;</span><span class="p">)</span>
</span><span id="TimeUnit.__init__-3639"><a href="#TimeUnit.__init__-3639"><span class="linenos">3639</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span>
</span><span id="TimeUnit.__init__-3640"><a href="#TimeUnit.__init__-3640"><span class="linenos">3640</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">&quot;unit&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</span><span id="TimeUnit.__init__-3641"><a href="#TimeUnit.__init__-3641"><span class="linenos">3641</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span>
</span><span id="TimeUnit.__init__-3642"><a href="#TimeUnit.__init__-3642"><span class="linenos">3642</span></a> <span class="n">unit</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span>
</span><span id="TimeUnit.__init__-3643"><a href="#TimeUnit.__init__-3643"><span class="linenos">3643</span></a>
</span><span id="TimeUnit.__init__-3644"><a href="#TimeUnit.__init__-3644"><span class="linenos">3644</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span>
</span></pre></div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimeUnit.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimeUnit.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimeUnit.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimeUnit.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimeUnit.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimeUnit.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimeUnit.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeUnit.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeUnit.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeUnit.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeUnit.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeUnit.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimeUnit.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeUnit.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeUnit.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimeUnit.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimeUnit.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimeUnit.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimeUnit.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimeUnit.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimeUnit.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimeUnit.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimeUnit.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimeUnit.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimeUnit.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimeUnit.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimeUnit.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeUnit.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeUnit.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimeUnit.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeUnit.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeUnit.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimeUnit.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimeUnit.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimeUnit.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimeUnit.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimeUnit.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Interval">
<input id="Interval-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Interval</span><wbr>(<span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="Interval-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Interval"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Interval-3647"><a href="#Interval-3647"><span class="linenos">3647</span></a><span class="k">class</span> <span class="nc">Interval</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="Interval-3648"><a href="#Interval-3648"><span class="linenos">3648</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Interval-3649"><a href="#Interval-3649"><span class="linenos">3649</span></a>
</span><span id="Interval-3650"><a href="#Interval-3650"><span class="linenos">3650</span></a> <span class="nd">@property</span>
</span><span id="Interval-3651"><a href="#Interval-3651"><span class="linenos">3651</span></a> <span class="k">def</span> <span class="nf">unit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Var</span><span class="p">]:</span>
</span><span id="Interval-3652"><a href="#Interval-3652"><span class="linenos">3652</span></a> <span class="k">return</span> <span class="bp">self</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;unit&quot;</span><span class="p">)</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="Interval.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Interval.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Interval.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Interval.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Interval.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Interval.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Interval.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Interval.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Interval.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Interval.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Interval.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Interval.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Interval.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Interval.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Interval.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Interval.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Interval.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Interval.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Interval.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Interval.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Interval.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Interval.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Interval.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Interval.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Interval.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Interval.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Interval.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Interval.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Interval.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Interval.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Interval.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Interval.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Interval.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Interval.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Interval.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Interval.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Interval.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Interval.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="IgnoreNulls">
<input id="IgnoreNulls-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">IgnoreNulls</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="IgnoreNulls-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#IgnoreNulls"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="IgnoreNulls-3655"><a href="#IgnoreNulls-3655"><span class="linenos">3655</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="IgnoreNulls-3656"><a href="#IgnoreNulls-3656"><span class="linenos">3656</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="IgnoreNulls.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="IgnoreNulls.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="IgnoreNulls.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="IgnoreNulls.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="IgnoreNulls.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="IgnoreNulls.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="IgnoreNulls.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="IgnoreNulls.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="IgnoreNulls.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="IgnoreNulls.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="IgnoreNulls.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IgnoreNulls.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IgnoreNulls.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="IgnoreNulls.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="IgnoreNulls.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="IgnoreNulls.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="IgnoreNulls.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="IgnoreNulls.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="IgnoreNulls.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="IgnoreNulls.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="IgnoreNulls.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="IgnoreNulls.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="IgnoreNulls.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="IgnoreNulls.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="IgnoreNulls.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="IgnoreNulls.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="IgnoreNulls.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="IgnoreNulls.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IgnoreNulls.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IgnoreNulls.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="IgnoreNulls.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IgnoreNulls.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IgnoreNulls.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="IgnoreNulls.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="IgnoreNulls.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="IgnoreNulls.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="IgnoreNulls.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="IgnoreNulls.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="RespectNulls">
<input id="RespectNulls-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">RespectNulls</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="RespectNulls-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#RespectNulls"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="RespectNulls-3659"><a href="#RespectNulls-3659"><span class="linenos">3659</span></a><span class="k">class</span> <span class="nc">RespectNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="RespectNulls-3660"><a href="#RespectNulls-3660"><span class="linenos">3660</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="RespectNulls.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="RespectNulls.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="RespectNulls.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="RespectNulls.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="RespectNulls.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="RespectNulls.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="RespectNulls.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="RespectNulls.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RespectNulls.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RespectNulls.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RespectNulls.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RespectNulls.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RespectNulls.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="RespectNulls.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RespectNulls.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RespectNulls.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="RespectNulls.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="RespectNulls.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="RespectNulls.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="RespectNulls.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="RespectNulls.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="RespectNulls.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="RespectNulls.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="RespectNulls.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="RespectNulls.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="RespectNulls.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="RespectNulls.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="RespectNulls.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RespectNulls.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RespectNulls.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="RespectNulls.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RespectNulls.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RespectNulls.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="RespectNulls.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="RespectNulls.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="RespectNulls.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="RespectNulls.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="RespectNulls.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Func">
<input id="Func-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Func</span><wbr>(<span class="base"><a href="#Condition">Condition</a></span>):
<label class="view-source-button" for="Func-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Func"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Func-3664"><a href="#Func-3664"><span class="linenos">3664</span></a><span class="k">class</span> <span class="nc">Func</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span>
</span><span id="Func-3665"><a href="#Func-3665"><span class="linenos">3665</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="Func-3666"><a href="#Func-3666"><span class="linenos">3666</span></a><span class="sd"> The base class for all function expressions.</span>
</span><span id="Func-3667"><a href="#Func-3667"><span class="linenos">3667</span></a>
</span><span id="Func-3668"><a href="#Func-3668"><span class="linenos">3668</span></a><span class="sd"> Attributes:</span>
</span><span id="Func-3669"><a href="#Func-3669"><span class="linenos">3669</span></a><span class="sd"> is_var_len_args (bool): if set to True the last argument defined in arg_types will be</span>
</span><span id="Func-3670"><a href="#Func-3670"><span class="linenos">3670</span></a><span class="sd"> treated as a variable length argument and the argument&#39;s value will be stored as a list.</span>
</span><span id="Func-3671"><a href="#Func-3671"><span class="linenos">3671</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span>
</span><span id="Func-3672"><a href="#Func-3672"><span class="linenos">3672</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span>
</span><span id="Func-3673"><a href="#Func-3673"><span class="linenos">3673</span></a><span class="sd"> as well as to provide the function&#39;s name during SQL string generation. By default the SQL</span>
</span><span id="Func-3674"><a href="#Func-3674"><span class="linenos">3674</span></a><span class="sd"> name is set to the expression&#39;s class name transformed to snake case.</span>
</span><span id="Func-3675"><a href="#Func-3675"><span class="linenos">3675</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="Func-3676"><a href="#Func-3676"><span class="linenos">3676</span></a>
</span><span id="Func-3677"><a href="#Func-3677"><span class="linenos">3677</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span>
</span><span id="Func-3678"><a href="#Func-3678"><span class="linenos">3678</span></a>
</span><span id="Func-3679"><a href="#Func-3679"><span class="linenos">3679</span></a> <span class="nd">@classmethod</span>
</span><span id="Func-3680"><a href="#Func-3680"><span class="linenos">3680</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
</span><span id="Func-3681"><a href="#Func-3681"><span class="linenos">3681</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span>
</span><span id="Func-3682"><a href="#Func-3682"><span class="linenos">3682</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
</span><span id="Func-3683"><a href="#Func-3683"><span class="linenos">3683</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
</span><span id="Func-3684"><a href="#Func-3684"><span class="linenos">3684</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span>
</span><span id="Func-3685"><a href="#Func-3685"><span class="linenos">3685</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span>
</span><span id="Func-3686"><a href="#Func-3686"><span class="linenos">3686</span></a>
</span><span id="Func-3687"><a href="#Func-3687"><span class="linenos">3687</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span>
</span><span id="Func-3688"><a href="#Func-3688"><span class="linenos">3688</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span>
</span><span id="Func-3689"><a href="#Func-3689"><span class="linenos">3689</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="Func-3690"><a href="#Func-3690"><span class="linenos">3690</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span>
</span><span id="Func-3691"><a href="#Func-3691"><span class="linenos">3691</span></a>
</span><span id="Func-3692"><a href="#Func-3692"><span class="linenos">3692</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span>
</span><span id="Func-3693"><a href="#Func-3693"><span class="linenos">3693</span></a>
</span><span id="Func-3694"><a href="#Func-3694"><span class="linenos">3694</span></a> <span class="nd">@classmethod</span>
</span><span id="Func-3695"><a href="#Func-3695"><span class="linenos">3695</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
</span><span id="Func-3696"><a href="#Func-3696"><span class="linenos">3696</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span>
</span><span id="Func-3697"><a href="#Func-3697"><span class="linenos">3697</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
</span><span id="Func-3698"><a href="#Func-3698"><span class="linenos">3698</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
</span><span id="Func-3699"><a href="#Func-3699"><span class="linenos">3699</span></a> <span class="p">)</span>
</span><span id="Func-3700"><a href="#Func-3700"><span class="linenos">3700</span></a> <span class="k">if</span> <span class="s2">&quot;_sql_names&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span>
</span><span id="Func-3701"><a href="#Func-3701"><span class="linenos">3701</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span>
</span><span id="Func-3702"><a href="#Func-3702"><span class="linenos">3702</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span>
</span><span id="Func-3703"><a href="#Func-3703"><span class="linenos">3703</span></a>
</span><span id="Func-3704"><a href="#Func-3704"><span class="linenos">3704</span></a> <span class="nd">@classmethod</span>
</span><span id="Func-3705"><a href="#Func-3705"><span class="linenos">3705</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
</span><span id="Func-3706"><a href="#Func-3706"><span class="linenos">3706</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
</span><span id="Func-3707"><a href="#Func-3707"><span class="linenos">3707</span></a>
</span><span id="Func-3708"><a href="#Func-3708"><span class="linenos">3708</span></a> <span class="nd">@classmethod</span>
</span><span id="Func-3709"><a href="#Func-3709"><span class="linenos">3709</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
</span><span id="Func-3710"><a href="#Func-3710"><span class="linenos">3710</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
</span></pre></div>
<div class="docstring"><p>The base class for all function expressions.</p>
<h6 id="attributes">Attributes:</h6>
<ul>
<li><strong>is_var_len_args (bool):</strong> if set to True the last argument defined in arg_types will be
treated as a variable length argument and the argument's value will be stored as a list.</li>
<li><strong>_sql_names (list):</strong> determines the SQL name (1st item in the list) and aliases (subsequent items)
for this function expression. These values are used to map this node to a name during parsing
as well as to provide the function's name during SQL string generation. By default the SQL
name is set to the expression's class name transformed to snake case.</li>
</ul>
</div>
<div id="Func.from_arg_list" class="classattr">
<input id="Func.from_arg_list-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<div class="decorator">@classmethod</div>
<span class="def">def</span>
<span class="name">from_arg_list</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">cls</span>, </span><span class="param"><span class="n">args</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Func.from_arg_list-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Func.from_arg_list"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Func.from_arg_list-3679"><a href="#Func.from_arg_list-3679"><span class="linenos">3679</span></a> <span class="nd">@classmethod</span>
</span><span id="Func.from_arg_list-3680"><a href="#Func.from_arg_list-3680"><span class="linenos">3680</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span>
</span><span id="Func.from_arg_list-3681"><a href="#Func.from_arg_list-3681"><span class="linenos">3681</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span>
</span><span id="Func.from_arg_list-3682"><a href="#Func.from_arg_list-3682"><span class="linenos">3682</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span>
</span><span id="Func.from_arg_list-3683"><a href="#Func.from_arg_list-3683"><span class="linenos">3683</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span>
</span><span id="Func.from_arg_list-3684"><a href="#Func.from_arg_list-3684"><span class="linenos">3684</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span>
</span><span id="Func.from_arg_list-3685"><a href="#Func.from_arg_list-3685"><span class="linenos">3685</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span>
</span><span id="Func.from_arg_list-3686"><a href="#Func.from_arg_list-3686"><span class="linenos">3686</span></a>
</span><span id="Func.from_arg_list-3687"><a href="#Func.from_arg_list-3687"><span class="linenos">3687</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span>
</span><span id="Func.from_arg_list-3688"><a href="#Func.from_arg_list-3688"><span class="linenos">3688</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span>
</span><span id="Func.from_arg_list-3689"><a href="#Func.from_arg_list-3689"><span class="linenos">3689</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="Func.from_arg_list-3690"><a href="#Func.from_arg_list-3690"><span class="linenos">3690</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span>
</span><span id="Func.from_arg_list-3691"><a href="#Func.from_arg_list-3691"><span class="linenos">3691</span></a>
</span><span id="Func.from_arg_list-3692"><a href="#Func.from_arg_list-3692"><span class="linenos">3692</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span>
</span></pre></div>
</div>
<div id="Func.sql_names" class="classattr">
<input id="Func.sql_names-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<div class="decorator">@classmethod</div>
<span class="def">def</span>
<span class="name">sql_names</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">cls</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Func.sql_names-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Func.sql_names"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Func.sql_names-3694"><a href="#Func.sql_names-3694"><span class="linenos">3694</span></a> <span class="nd">@classmethod</span>
</span><span id="Func.sql_names-3695"><a href="#Func.sql_names-3695"><span class="linenos">3695</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
</span><span id="Func.sql_names-3696"><a href="#Func.sql_names-3696"><span class="linenos">3696</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span>
</span><span id="Func.sql_names-3697"><a href="#Func.sql_names-3697"><span class="linenos">3697</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span>
</span><span id="Func.sql_names-3698"><a href="#Func.sql_names-3698"><span class="linenos">3698</span></a> <span class="s2">&quot;SQL name is only supported by concrete function implementations&quot;</span>
</span><span id="Func.sql_names-3699"><a href="#Func.sql_names-3699"><span class="linenos">3699</span></a> <span class="p">)</span>
</span><span id="Func.sql_names-3700"><a href="#Func.sql_names-3700"><span class="linenos">3700</span></a> <span class="k">if</span> <span class="s2">&quot;_sql_names&quot;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span>
</span><span id="Func.sql_names-3701"><a href="#Func.sql_names-3701"><span class="linenos">3701</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span>
</span><span id="Func.sql_names-3702"><a href="#Func.sql_names-3702"><span class="linenos">3702</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span>
</span></pre></div>
</div>
<div id="Func.sql_name" class="classattr">
<input id="Func.sql_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<div class="decorator">@classmethod</div>
<span class="def">def</span>
<span class="name">sql_name</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">cls</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Func.sql_name-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Func.sql_name"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Func.sql_name-3704"><a href="#Func.sql_name-3704"><span class="linenos">3704</span></a> <span class="nd">@classmethod</span>
</span><span id="Func.sql_name-3705"><a href="#Func.sql_name-3705"><span class="linenos">3705</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
</span><span id="Func.sql_name-3706"><a href="#Func.sql_name-3706"><span class="linenos">3706</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span>
</span></pre></div>
</div>
<div id="Func.default_parser_mappings" class="classattr">
<input id="Func.default_parser_mappings-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<div class="decorator">@classmethod</div>
<span class="def">def</span>
<span class="name">default_parser_mappings</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">cls</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="Func.default_parser_mappings-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Func.default_parser_mappings"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Func.default_parser_mappings-3708"><a href="#Func.default_parser_mappings-3708"><span class="linenos">3708</span></a> <span class="nd">@classmethod</span>
</span><span id="Func.default_parser_mappings-3709"><a href="#Func.default_parser_mappings-3709"><span class="linenos">3709</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
</span><span id="Func.default_parser_mappings-3710"><a href="#Func.default_parser_mappings-3710"><span class="linenos">3710</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span>
</span></pre></div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Func.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Func.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Func.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Func.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Func.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Func.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Func.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Func.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Func.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Func.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Func.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Func.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Func.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Func.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Func.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Func.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Func.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Func.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Func.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Func.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Func.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Func.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Func.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Func.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Func.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Func.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Func.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Func.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Func.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Func.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Func.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Func.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Func.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Func.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Func.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Func.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Func.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Func.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Func.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Func.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Func.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Func.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Func.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Func.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Func.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Func.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Func.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Func.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Func.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Func.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="AggFunc">
<input id="AggFunc-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">AggFunc</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="AggFunc-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#AggFunc"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="AggFunc-3713"><a href="#AggFunc-3713"><span class="linenos">3713</span></a><span class="k">class</span> <span class="nc">AggFunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="AggFunc-3714"><a href="#AggFunc-3714"><span class="linenos">3714</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="AggFunc.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="AggFunc.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="AggFunc.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="AggFunc.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="AggFunc.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="AggFunc.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="AggFunc.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="AggFunc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AggFunc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AggFunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AggFunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AggFunc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AggFunc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="AggFunc.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AggFunc.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AggFunc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="AggFunc.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="AggFunc.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="AggFunc.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="AggFunc.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="AggFunc.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="AggFunc.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="AggFunc.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="AggFunc.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="AggFunc.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="AggFunc.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="AggFunc.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="AggFunc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AggFunc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AggFunc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="AggFunc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AggFunc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AggFunc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="AggFunc.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="AggFunc.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="AggFunc.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="AggFunc.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="AggFunc.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="AggFunc.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="AggFunc.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="AggFunc.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="AggFunc.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="AggFunc.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="AggFunc.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="AggFunc.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="AggFunc.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="AggFunc.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="AggFunc.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="AggFunc.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="AggFunc.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="AggFunc.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="AggFunc.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="AggFunc.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="AggFunc.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ParameterizedAgg">
<input id="ParameterizedAgg-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ParameterizedAgg</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="ParameterizedAgg-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ParameterizedAgg"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ParameterizedAgg-3717"><a href="#ParameterizedAgg-3717"><span class="linenos">3717</span></a><span class="k">class</span> <span class="nc">ParameterizedAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="ParameterizedAgg-3718"><a href="#ParameterizedAgg-3718"><span class="linenos">3718</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;params&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ParameterizedAgg.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ParameterizedAgg.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ParameterizedAgg.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ParameterizedAgg.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ParameterizedAgg.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ParameterizedAgg.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ParameterizedAgg.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ParameterizedAgg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ParameterizedAgg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ParameterizedAgg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ParameterizedAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ParameterizedAgg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ParameterizedAgg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ParameterizedAgg.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ParameterizedAgg.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ParameterizedAgg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ParameterizedAgg.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ParameterizedAgg.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ParameterizedAgg.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ParameterizedAgg.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ParameterizedAgg.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ParameterizedAgg.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ParameterizedAgg.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ParameterizedAgg.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ParameterizedAgg.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ParameterizedAgg.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ParameterizedAgg.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ParameterizedAgg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ParameterizedAgg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ParameterizedAgg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ParameterizedAgg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ParameterizedAgg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ParameterizedAgg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ParameterizedAgg.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ParameterizedAgg.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ParameterizedAgg.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ParameterizedAgg.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ParameterizedAgg.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ParameterizedAgg.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ParameterizedAgg.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ParameterizedAgg.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ParameterizedAgg.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ParameterizedAgg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ParameterizedAgg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ParameterizedAgg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ParameterizedAgg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ParameterizedAgg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ParameterizedAgg.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ParameterizedAgg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ParameterizedAgg.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ParameterizedAgg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ParameterizedAgg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ParameterizedAgg.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ParameterizedAgg.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Abs">
<input id="Abs-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Abs</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Abs-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Abs"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Abs-3721"><a href="#Abs-3721"><span class="linenos">3721</span></a><span class="k">class</span> <span class="nc">Abs</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Abs-3722"><a href="#Abs-3722"><span class="linenos">3722</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Abs.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Abs.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Abs.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Abs.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Abs.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Abs.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Abs.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Abs.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Abs.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Abs.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Abs.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Abs.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Abs.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Abs.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Abs.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Abs.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Abs.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Abs.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Abs.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Abs.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Abs.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Abs.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Abs.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Abs.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Abs.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Abs.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Abs.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Abs.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Abs.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Abs.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Abs.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Abs.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Abs.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Abs.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Abs.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Abs.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Abs.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Abs.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Abs.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Abs.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Abs.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Abs.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Abs.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Abs.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Abs.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Abs.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Abs.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Abs.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Abs.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Abs.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Abs.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Abs.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Abs.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Abs.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Anonymous">
<input id="Anonymous-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Anonymous</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Anonymous-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Anonymous"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Anonymous-3725"><a href="#Anonymous-3725"><span class="linenos">3725</span></a><span class="k">class</span> <span class="nc">Anonymous</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Anonymous-3726"><a href="#Anonymous-3726"><span class="linenos">3726</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Anonymous-3727"><a href="#Anonymous-3727"><span class="linenos">3727</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Anonymous.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Anonymous.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Anonymous.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Anonymous.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Anonymous.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Anonymous.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Anonymous.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Anonymous.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Anonymous.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Anonymous.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Anonymous.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Anonymous.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Anonymous.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Anonymous.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Anonymous.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Anonymous.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Anonymous.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Anonymous.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Anonymous.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Anonymous.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Anonymous.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Anonymous.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Anonymous.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Anonymous.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Anonymous.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Anonymous.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Anonymous.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Anonymous.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Anonymous.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Anonymous.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Anonymous.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Anonymous.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Anonymous.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Anonymous.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Anonymous.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Anonymous.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Anonymous.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Anonymous.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Anonymous.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Anonymous.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Anonymous.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Anonymous.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Anonymous.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Anonymous.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Anonymous.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Anonymous.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Anonymous.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Anonymous.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Anonymous.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Anonymous.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Anonymous.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Anonymous.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Anonymous.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Anonymous.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Hll">
<input id="Hll-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Hll</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="Hll-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Hll"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Hll-3732"><a href="#Hll-3732"><span class="linenos">3732</span></a><span class="k">class</span> <span class="nc">Hll</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="Hll-3733"><a href="#Hll-3733"><span class="linenos">3733</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Hll-3734"><a href="#Hll-3734"><span class="linenos">3734</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Hll.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Hll.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Hll.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Hll.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Hll.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Hll.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Hll.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Hll.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Hll.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Hll.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Hll.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Hll.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Hll.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Hll.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Hll.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Hll.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Hll.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Hll.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Hll.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Hll.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Hll.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Hll.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Hll.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Hll.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Hll.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Hll.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Hll.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Hll.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Hll.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Hll.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Hll.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Hll.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Hll.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Hll.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Hll.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Hll.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Hll.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Hll.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Hll.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Hll.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Hll.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Hll.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Hll.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Hll.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Hll.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Hll.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Hll.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Hll.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Hll.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Hll.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Hll.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Hll.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Hll.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Hll.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ApproxDistinct">
<input id="ApproxDistinct-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ApproxDistinct</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="ApproxDistinct-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ApproxDistinct"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ApproxDistinct-3737"><a href="#ApproxDistinct-3737"><span class="linenos">3737</span></a><span class="k">class</span> <span class="nc">ApproxDistinct</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="ApproxDistinct-3738"><a href="#ApproxDistinct-3738"><span class="linenos">3738</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="ApproxDistinct-3739"><a href="#ApproxDistinct-3739"><span class="linenos">3739</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;APPROX_DISTINCT&quot;</span><span class="p">,</span> <span class="s2">&quot;APPROX_COUNT_DISTINCT&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ApproxDistinct.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ApproxDistinct.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ApproxDistinct.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ApproxDistinct.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ApproxDistinct.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ApproxDistinct.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ApproxDistinct.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ApproxDistinct.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ApproxDistinct.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ApproxDistinct.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ApproxDistinct.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ApproxDistinct.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ApproxDistinct.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ApproxDistinct.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ApproxDistinct.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ApproxDistinct.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ApproxDistinct.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ApproxDistinct.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ApproxDistinct.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ApproxDistinct.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ApproxDistinct.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ApproxDistinct.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ApproxDistinct.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ApproxDistinct.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ApproxDistinct.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ApproxDistinct.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ApproxDistinct.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ApproxDistinct.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ApproxDistinct.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ApproxDistinct.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ApproxDistinct.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ApproxDistinct.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ApproxDistinct.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ApproxDistinct.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ApproxDistinct.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ApproxDistinct.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ApproxDistinct.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ApproxDistinct.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ApproxDistinct.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ApproxDistinct.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ApproxDistinct.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ApproxDistinct.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ApproxDistinct.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ApproxDistinct.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ApproxDistinct.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ApproxDistinct.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ApproxDistinct.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ApproxDistinct.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ApproxDistinct.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ApproxDistinct.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ApproxDistinct.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ApproxDistinct.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ApproxDistinct.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ApproxDistinct.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Array">
<input id="Array-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Array</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Array-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Array"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Array-3742"><a href="#Array-3742"><span class="linenos">3742</span></a><span class="k">class</span> <span class="nc">Array</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Array-3743"><a href="#Array-3743"><span class="linenos">3743</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Array-3744"><a href="#Array-3744"><span class="linenos">3744</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Array.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Array.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Array.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Array.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Array.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Array.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Array.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Array.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Array.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Array.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Array.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Array.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Array.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Array.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Array.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Array.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Array.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Array.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Array.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Array.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Array.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Array.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Array.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Array.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Array.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Array.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Array.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Array.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Array.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Array.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Array.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Array.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Array.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Array.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Array.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Array.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Array.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Array.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Array.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Array.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Array.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Array.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Array.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Array.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Array.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Array.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Array.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Array.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Array.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Array.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Array.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Array.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Array.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Array.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ToChar">
<input id="ToChar-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ToChar</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="ToChar-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ToChar"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ToChar-3748"><a href="#ToChar-3748"><span class="linenos">3748</span></a><span class="k">class</span> <span class="nc">ToChar</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="ToChar-3749"><a href="#ToChar-3749"><span class="linenos">3749</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ToChar.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ToChar.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ToChar.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ToChar.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ToChar.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ToChar.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ToChar.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ToChar.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ToChar.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ToChar.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ToChar.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ToChar.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ToChar.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ToChar.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ToChar.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ToChar.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ToChar.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ToChar.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ToChar.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ToChar.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ToChar.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ToChar.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ToChar.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ToChar.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ToChar.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ToChar.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ToChar.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ToChar.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ToChar.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ToChar.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ToChar.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ToChar.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ToChar.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ToChar.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ToChar.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ToChar.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ToChar.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ToChar.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ToChar.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ToChar.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ToChar.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ToChar.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ToChar.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ToChar.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ToChar.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ToChar.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ToChar.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ToChar.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ToChar.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ToChar.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ToChar.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ToChar.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ToChar.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ToChar.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="GenerateSeries">
<input id="GenerateSeries-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">GenerateSeries</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="GenerateSeries-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#GenerateSeries"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="GenerateSeries-3752"><a href="#GenerateSeries-3752"><span class="linenos">3752</span></a><span class="k">class</span> <span class="nc">GenerateSeries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="GenerateSeries-3753"><a href="#GenerateSeries-3753"><span class="linenos">3753</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;end&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;step&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="GenerateSeries.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="GenerateSeries.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="GenerateSeries.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="GenerateSeries.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="GenerateSeries.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="GenerateSeries.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="GenerateSeries.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="GenerateSeries.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="GenerateSeries.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="GenerateSeries.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="GenerateSeries.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="GenerateSeries.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="GenerateSeries.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="GenerateSeries.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="GenerateSeries.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="GenerateSeries.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="GenerateSeries.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="GenerateSeries.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="GenerateSeries.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="GenerateSeries.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="GenerateSeries.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="GenerateSeries.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="GenerateSeries.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="GenerateSeries.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="GenerateSeries.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="GenerateSeries.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="GenerateSeries.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="GenerateSeries.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="GenerateSeries.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="GenerateSeries.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="GenerateSeries.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="GenerateSeries.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="GenerateSeries.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="GenerateSeries.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="GenerateSeries.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="GenerateSeries.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="GenerateSeries.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="GenerateSeries.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="GenerateSeries.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="GenerateSeries.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="GenerateSeries.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="GenerateSeries.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="GenerateSeries.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="GenerateSeries.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="GenerateSeries.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="GenerateSeries.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="GenerateSeries.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="GenerateSeries.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="GenerateSeries.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="GenerateSeries.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="GenerateSeries.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="GenerateSeries.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="GenerateSeries.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="GenerateSeries.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ArrayAgg">
<input id="ArrayAgg-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ArrayAgg</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="ArrayAgg-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArrayAgg"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAgg-3756"><a href="#ArrayAgg-3756"><span class="linenos">3756</span></a><span class="k">class</span> <span class="nc">ArrayAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="ArrayAgg-3757"><a href="#ArrayAgg-3757"><span class="linenos">3757</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ArrayAgg.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ArrayAgg.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ArrayAgg.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ArrayAgg.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ArrayAgg.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ArrayAgg.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ArrayAgg.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ArrayAgg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayAgg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayAgg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayAgg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayAgg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArrayAgg.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayAgg.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayAgg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ArrayAgg.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ArrayAgg.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ArrayAgg.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ArrayAgg.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ArrayAgg.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ArrayAgg.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ArrayAgg.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ArrayAgg.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ArrayAgg.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ArrayAgg.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ArrayAgg.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ArrayAgg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayAgg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayAgg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ArrayAgg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayAgg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayAgg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ArrayAgg.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ArrayAgg.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ArrayAgg.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ArrayAgg.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ArrayAgg.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ArrayAgg.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ArrayAgg.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ArrayAgg.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ArrayAgg.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ArrayAgg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayAgg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayAgg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ArrayAgg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayAgg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayAgg.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ArrayAgg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayAgg.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayAgg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayAgg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ArrayAgg.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ArrayAgg.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ArrayAll">
<input id="ArrayAll-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ArrayAll</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="ArrayAll-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArrayAll"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAll-3760"><a href="#ArrayAll-3760"><span class="linenos">3760</span></a><span class="k">class</span> <span class="nc">ArrayAll</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="ArrayAll-3761"><a href="#ArrayAll-3761"><span class="linenos">3761</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ArrayAll.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ArrayAll.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ArrayAll.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ArrayAll.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ArrayAll.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ArrayAll.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ArrayAll.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ArrayAll.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayAll.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayAll.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayAll.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayAll.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayAll.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArrayAll.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayAll.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayAll.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ArrayAll.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ArrayAll.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ArrayAll.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ArrayAll.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ArrayAll.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ArrayAll.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ArrayAll.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ArrayAll.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ArrayAll.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ArrayAll.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ArrayAll.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ArrayAll.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayAll.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayAll.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ArrayAll.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayAll.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayAll.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ArrayAll.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ArrayAll.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ArrayAll.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ArrayAll.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ArrayAll.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ArrayAll.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ArrayAll.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ArrayAll.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ArrayAll.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ArrayAll.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayAll.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayAll.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ArrayAll.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayAll.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayAll.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ArrayAll.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayAll.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayAll.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayAll.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ArrayAll.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ArrayAll.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ArrayAny">
<input id="ArrayAny-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ArrayAny</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="ArrayAny-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArrayAny"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAny-3764"><a href="#ArrayAny-3764"><span class="linenos">3764</span></a><span class="k">class</span> <span class="nc">ArrayAny</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="ArrayAny-3765"><a href="#ArrayAny-3765"><span class="linenos">3765</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ArrayAny.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ArrayAny.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ArrayAny.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ArrayAny.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ArrayAny.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ArrayAny.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ArrayAny.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ArrayAny.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayAny.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayAny.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayAny.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayAny.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayAny.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArrayAny.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayAny.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayAny.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ArrayAny.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ArrayAny.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ArrayAny.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ArrayAny.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ArrayAny.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ArrayAny.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ArrayAny.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ArrayAny.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ArrayAny.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ArrayAny.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ArrayAny.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ArrayAny.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayAny.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayAny.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ArrayAny.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayAny.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayAny.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ArrayAny.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ArrayAny.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ArrayAny.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ArrayAny.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ArrayAny.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ArrayAny.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ArrayAny.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ArrayAny.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ArrayAny.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ArrayAny.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayAny.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayAny.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ArrayAny.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayAny.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayAny.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ArrayAny.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayAny.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayAny.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayAny.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ArrayAny.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ArrayAny.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ArrayConcat">
<input id="ArrayConcat-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ArrayConcat</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="ArrayConcat-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArrayConcat"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ArrayConcat-3768"><a href="#ArrayConcat-3768"><span class="linenos">3768</span></a><span class="k">class</span> <span class="nc">ArrayConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="ArrayConcat-3769"><a href="#ArrayConcat-3769"><span class="linenos">3769</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="ArrayConcat-3770"><a href="#ArrayConcat-3770"><span class="linenos">3770</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ArrayConcat.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ArrayConcat.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ArrayConcat.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ArrayConcat.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ArrayConcat.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ArrayConcat.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ArrayConcat.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ArrayConcat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayConcat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayConcat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayConcat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayConcat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayConcat.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArrayConcat.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayConcat.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayConcat.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ArrayConcat.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ArrayConcat.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ArrayConcat.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ArrayConcat.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ArrayConcat.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ArrayConcat.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ArrayConcat.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ArrayConcat.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ArrayConcat.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ArrayConcat.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ArrayConcat.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ArrayConcat.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayConcat.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayConcat.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ArrayConcat.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayConcat.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayConcat.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ArrayConcat.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ArrayConcat.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ArrayConcat.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ArrayConcat.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ArrayConcat.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ArrayConcat.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ArrayConcat.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ArrayConcat.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ArrayConcat.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ArrayConcat.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayConcat.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayConcat.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ArrayConcat.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayConcat.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayConcat.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ArrayConcat.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayConcat.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayConcat.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayConcat.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ArrayConcat.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ArrayConcat.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ArrayContains">
<input id="ArrayContains-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ArrayContains</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="ArrayContains-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArrayContains"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContains-3773"><a href="#ArrayContains-3773"><span class="linenos">3773</span></a><span class="k">class</span> <span class="nc">ArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
</span><span id="ArrayContains-3774"><a href="#ArrayContains-3774"><span class="linenos">3774</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ArrayContains.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ArrayContains.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ArrayContains.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ArrayContains.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ArrayContains.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ArrayContains.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ArrayContains.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ArrayContains.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayContains.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayContains.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayContains.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayContains.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayContains.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArrayContains.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayContains.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayContains.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ArrayContains.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ArrayContains.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ArrayContains.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ArrayContains.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ArrayContains.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ArrayContains.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ArrayContains.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ArrayContains.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ArrayContains.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ArrayContains.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ArrayContains.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ArrayContains.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayContains.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayContains.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ArrayContains.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayContains.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayContains.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ArrayContains.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ArrayContains.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ArrayContains.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ArrayContains.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ArrayContains.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ArrayContains.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ArrayContains.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ArrayContains.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ArrayContains.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ArrayContains.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayContains.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayContains.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ArrayContains.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayContains.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayContains.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ArrayContains.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayContains.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayContains.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayContains.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ArrayContains.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ArrayContains.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ArrayContained">
<input id="ArrayContained-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ArrayContained</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="ArrayContained-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArrayContained"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContained-3777"><a href="#ArrayContained-3777"><span class="linenos">3777</span></a><span class="k">class</span> <span class="nc">ArrayContained</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="ArrayContained-3778"><a href="#ArrayContained-3778"><span class="linenos">3778</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ArrayContained.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ArrayContained.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ArrayContained.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ArrayContained.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ArrayContained.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ArrayContained.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ArrayContained.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ArrayContained.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayContained.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayContained.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayContained.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayContained.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayContained.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArrayContained.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayContained.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayContained.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ArrayContained.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ArrayContained.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ArrayContained.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ArrayContained.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ArrayContained.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ArrayContained.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ArrayContained.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ArrayContained.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ArrayContained.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ArrayContained.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ArrayContained.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ArrayContained.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayContained.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayContained.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ArrayContained.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayContained.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayContained.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ArrayContained.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ArrayContained.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ArrayContained.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ArrayContained.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ArrayContained.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ArrayContained.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayContained.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayContained.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ArrayContained.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayContained.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayContained.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ArrayContained.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayContained.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayContained.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayContained.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ArrayContained.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ArrayContained.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ArrayFilter">
<input id="ArrayFilter-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ArrayFilter</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="ArrayFilter-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArrayFilter"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ArrayFilter-3781"><a href="#ArrayFilter-3781"><span class="linenos">3781</span></a><span class="k">class</span> <span class="nc">ArrayFilter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="ArrayFilter-3782"><a href="#ArrayFilter-3782"><span class="linenos">3782</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="ArrayFilter-3783"><a href="#ArrayFilter-3783"><span class="linenos">3783</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;FILTER&quot;</span><span class="p">,</span> <span class="s2">&quot;ARRAY_FILTER&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ArrayFilter.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ArrayFilter.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ArrayFilter.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ArrayFilter.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ArrayFilter.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ArrayFilter.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ArrayFilter.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ArrayFilter.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayFilter.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayFilter.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayFilter.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayFilter.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayFilter.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArrayFilter.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayFilter.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayFilter.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ArrayFilter.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ArrayFilter.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ArrayFilter.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ArrayFilter.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ArrayFilter.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ArrayFilter.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ArrayFilter.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ArrayFilter.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ArrayFilter.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ArrayFilter.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ArrayFilter.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ArrayFilter.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayFilter.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayFilter.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ArrayFilter.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayFilter.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayFilter.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ArrayFilter.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ArrayFilter.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ArrayFilter.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ArrayFilter.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ArrayFilter.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ArrayFilter.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ArrayFilter.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ArrayFilter.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ArrayFilter.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ArrayFilter.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayFilter.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayFilter.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ArrayFilter.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayFilter.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayFilter.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ArrayFilter.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayFilter.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayFilter.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayFilter.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ArrayFilter.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ArrayFilter.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ArrayJoin">
<input id="ArrayJoin-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ArrayJoin</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="ArrayJoin-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArrayJoin"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ArrayJoin-3786"><a href="#ArrayJoin-3786"><span class="linenos">3786</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="ArrayJoin-3787"><a href="#ArrayJoin-3787"><span class="linenos">3787</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;null&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ArrayJoin.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ArrayJoin.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ArrayJoin.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ArrayJoin.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ArrayJoin.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ArrayJoin.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ArrayJoin.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ArrayJoin.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayJoin.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayJoin.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayJoin.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayJoin.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayJoin.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArrayJoin.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayJoin.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayJoin.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ArrayJoin.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ArrayJoin.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ArrayJoin.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ArrayJoin.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ArrayJoin.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ArrayJoin.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ArrayJoin.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ArrayJoin.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ArrayJoin.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ArrayJoin.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ArrayJoin.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ArrayJoin.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayJoin.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayJoin.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ArrayJoin.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayJoin.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayJoin.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ArrayJoin.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ArrayJoin.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ArrayJoin.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ArrayJoin.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ArrayJoin.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ArrayJoin.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ArrayJoin.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ArrayJoin.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ArrayJoin.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ArrayJoin.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayJoin.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayJoin.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ArrayJoin.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayJoin.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayJoin.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ArrayJoin.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayJoin.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayJoin.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayJoin.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ArrayJoin.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ArrayJoin.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ArraySize">
<input id="ArraySize-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ArraySize</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="ArraySize-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArraySize"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ArraySize-3790"><a href="#ArraySize-3790"><span class="linenos">3790</span></a><span class="k">class</span> <span class="nc">ArraySize</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="ArraySize-3791"><a href="#ArraySize-3791"><span class="linenos">3791</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ArraySize.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ArraySize.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ArraySize.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ArraySize.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ArraySize.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ArraySize.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ArraySize.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ArraySize.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArraySize.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArraySize.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArraySize.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArraySize.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArraySize.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArraySize.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArraySize.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArraySize.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ArraySize.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ArraySize.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ArraySize.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ArraySize.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ArraySize.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ArraySize.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ArraySize.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ArraySize.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ArraySize.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ArraySize.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ArraySize.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ArraySize.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArraySize.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArraySize.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ArraySize.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArraySize.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArraySize.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ArraySize.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ArraySize.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ArraySize.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ArraySize.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ArraySize.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ArraySize.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ArraySize.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ArraySize.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ArraySize.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ArraySize.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArraySize.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArraySize.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ArraySize.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArraySize.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArraySize.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ArraySize.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArraySize.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArraySize.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArraySize.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ArraySize.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ArraySize.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ArraySort">
<input id="ArraySort-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ArraySort</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="ArraySort-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArraySort"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ArraySort-3794"><a href="#ArraySort-3794"><span class="linenos">3794</span></a><span class="k">class</span> <span class="nc">ArraySort</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="ArraySort-3795"><a href="#ArraySort-3795"><span class="linenos">3795</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ArraySort.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ArraySort.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ArraySort.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ArraySort.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ArraySort.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ArraySort.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ArraySort.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ArraySort.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArraySort.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArraySort.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArraySort.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArraySort.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArraySort.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArraySort.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArraySort.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArraySort.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ArraySort.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ArraySort.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ArraySort.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ArraySort.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ArraySort.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ArraySort.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ArraySort.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ArraySort.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ArraySort.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ArraySort.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ArraySort.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ArraySort.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArraySort.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArraySort.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ArraySort.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArraySort.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArraySort.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ArraySort.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ArraySort.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ArraySort.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ArraySort.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ArraySort.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ArraySort.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ArraySort.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ArraySort.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ArraySort.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ArraySort.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArraySort.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArraySort.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ArraySort.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArraySort.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArraySort.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ArraySort.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArraySort.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArraySort.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArraySort.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ArraySort.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ArraySort.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ArraySum">
<input id="ArraySum-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ArraySum</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="ArraySum-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArraySum"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ArraySum-3798"><a href="#ArraySum-3798"><span class="linenos">3798</span></a><span class="k">class</span> <span class="nc">ArraySum</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="ArraySum-3799"><a href="#ArraySum-3799"><span class="linenos">3799</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ArraySum.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ArraySum.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ArraySum.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ArraySum.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ArraySum.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ArraySum.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ArraySum.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ArraySum.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArraySum.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArraySum.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArraySum.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArraySum.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArraySum.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArraySum.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArraySum.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArraySum.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ArraySum.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ArraySum.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ArraySum.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ArraySum.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ArraySum.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ArraySum.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ArraySum.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ArraySum.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ArraySum.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ArraySum.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ArraySum.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ArraySum.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArraySum.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArraySum.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ArraySum.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArraySum.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArraySum.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ArraySum.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ArraySum.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ArraySum.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ArraySum.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ArraySum.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ArraySum.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ArraySum.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ArraySum.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ArraySum.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ArraySum.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArraySum.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArraySum.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ArraySum.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArraySum.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArraySum.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ArraySum.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArraySum.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArraySum.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArraySum.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ArraySum.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ArraySum.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ArrayUnionAgg">
<input id="ArrayUnionAgg-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ArrayUnionAgg</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="ArrayUnionAgg-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ArrayUnionAgg"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ArrayUnionAgg-3802"><a href="#ArrayUnionAgg-3802"><span class="linenos">3802</span></a><span class="k">class</span> <span class="nc">ArrayUnionAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="ArrayUnionAgg-3803"><a href="#ArrayUnionAgg-3803"><span class="linenos">3803</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ArrayUnionAgg.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ArrayUnionAgg.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ArrayUnionAgg.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ArrayUnionAgg.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ArrayUnionAgg.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ArrayUnionAgg.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ArrayUnionAgg.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ArrayUnionAgg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ArrayUnionAgg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ArrayUnionAgg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ArrayUnionAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ArrayUnionAgg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ArrayUnionAgg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ArrayUnionAgg.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ArrayUnionAgg.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ArrayUnionAgg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ArrayUnionAgg.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ArrayUnionAgg.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ArrayUnionAgg.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ArrayUnionAgg.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ArrayUnionAgg.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ArrayUnionAgg.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ArrayUnionAgg.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ArrayUnionAgg.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ArrayUnionAgg.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ArrayUnionAgg.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ArrayUnionAgg.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ArrayUnionAgg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ArrayUnionAgg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ArrayUnionAgg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ArrayUnionAgg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ArrayUnionAgg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ArrayUnionAgg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ArrayUnionAgg.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ArrayUnionAgg.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ArrayUnionAgg.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ArrayUnionAgg.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ArrayUnionAgg.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ArrayUnionAgg.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ArrayUnionAgg.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ArrayUnionAgg.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ArrayUnionAgg.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ArrayUnionAgg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ArrayUnionAgg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ArrayUnionAgg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ArrayUnionAgg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ArrayUnionAgg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ArrayUnionAgg.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ArrayUnionAgg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ArrayUnionAgg.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ArrayUnionAgg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ArrayUnionAgg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ArrayUnionAgg.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ArrayUnionAgg.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Avg">
<input id="Avg-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Avg</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="Avg-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Avg"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Avg-3806"><a href="#Avg-3806"><span class="linenos">3806</span></a><span class="k">class</span> <span class="nc">Avg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="Avg-3807"><a href="#Avg-3807"><span class="linenos">3807</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Avg.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Avg.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Avg.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Avg.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Avg.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Avg.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Avg.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Avg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Avg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Avg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Avg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Avg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Avg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Avg.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Avg.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Avg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Avg.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Avg.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Avg.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Avg.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Avg.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Avg.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Avg.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Avg.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Avg.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Avg.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Avg.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Avg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Avg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Avg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Avg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Avg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Avg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Avg.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Avg.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Avg.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Avg.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Avg.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Avg.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Avg.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Avg.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Avg.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Avg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Avg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Avg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Avg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Avg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Avg.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Avg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Avg.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Avg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Avg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Avg.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Avg.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="AnyValue">
<input id="AnyValue-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">AnyValue</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="AnyValue-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#AnyValue"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="AnyValue-3810"><a href="#AnyValue-3810"><span class="linenos">3810</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="AnyValue-3811"><a href="#AnyValue-3811"><span class="linenos">3811</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="AnyValue.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="AnyValue.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="AnyValue.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="AnyValue.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="AnyValue.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="AnyValue.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="AnyValue.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="AnyValue.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="AnyValue.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="AnyValue.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="AnyValue.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="AnyValue.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="AnyValue.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="AnyValue.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="AnyValue.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="AnyValue.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="AnyValue.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="AnyValue.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="AnyValue.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="AnyValue.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="AnyValue.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="AnyValue.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="AnyValue.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="AnyValue.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="AnyValue.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="AnyValue.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="AnyValue.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="AnyValue.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="AnyValue.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="AnyValue.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="AnyValue.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="AnyValue.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="AnyValue.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="AnyValue.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="AnyValue.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="AnyValue.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="AnyValue.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="AnyValue.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="AnyValue.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="AnyValue.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="AnyValue.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="AnyValue.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="AnyValue.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="AnyValue.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="AnyValue.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="AnyValue.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="AnyValue.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="AnyValue.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="AnyValue.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="AnyValue.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="AnyValue.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="AnyValue.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="AnyValue.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="AnyValue.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Case">
<input id="Case-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Case</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Case-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Case"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Case-3814"><a href="#Case-3814"><span class="linenos">3814</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Case-3815"><a href="#Case-3815"><span class="linenos">3815</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;ifs&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;default&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Case-3816"><a href="#Case-3816"><span class="linenos">3816</span></a>
</span><span id="Case-3817"><a href="#Case-3817"><span class="linenos">3817</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
</span><span id="Case-3818"><a href="#Case-3818"><span class="linenos">3818</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="Case-3819"><a href="#Case-3819"><span class="linenos">3819</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
</span><span id="Case-3820"><a href="#Case-3820"><span class="linenos">3820</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
</span><span id="Case-3821"><a href="#Case-3821"><span class="linenos">3821</span></a> <span class="n">If</span><span class="p">(</span>
</span><span id="Case-3822"><a href="#Case-3822"><span class="linenos">3822</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="Case-3823"><a href="#Case-3823"><span class="linenos">3823</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="Case-3824"><a href="#Case-3824"><span class="linenos">3824</span></a> <span class="p">),</span>
</span><span id="Case-3825"><a href="#Case-3825"><span class="linenos">3825</span></a> <span class="p">)</span>
</span><span id="Case-3826"><a href="#Case-3826"><span class="linenos">3826</span></a> <span class="k">return</span> <span class="n">instance</span>
</span><span id="Case-3827"><a href="#Case-3827"><span class="linenos">3827</span></a>
</span><span id="Case-3828"><a href="#Case-3828"><span class="linenos">3828</span></a> <span class="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
</span><span id="Case-3829"><a href="#Case-3829"><span class="linenos">3829</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="Case-3830"><a href="#Case-3830"><span class="linenos">3830</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span><span id="Case-3831"><a href="#Case-3831"><span class="linenos">3831</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
<div id="Case.when" class="classattr">
<input id="Case.when-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">when</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">condition</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">then</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Case">sqlglot.expressions.Case</a></span>:</span></span>
<label class="view-source-button" for="Case.when-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Case.when"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Case.when-3817"><a href="#Case.when-3817"><span class="linenos">3817</span></a> <span class="k">def</span> <span class="nf">when</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">then</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
</span><span id="Case.when-3818"><a href="#Case.when-3818"><span class="linenos">3818</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="Case.when-3819"><a href="#Case.when-3819"><span class="linenos">3819</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
</span><span id="Case.when-3820"><a href="#Case.when-3820"><span class="linenos">3820</span></a> <span class="s2">&quot;ifs&quot;</span><span class="p">,</span>
</span><span id="Case.when-3821"><a href="#Case.when-3821"><span class="linenos">3821</span></a> <span class="n">If</span><span class="p">(</span>
</span><span id="Case.when-3822"><a href="#Case.when-3822"><span class="linenos">3822</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="Case.when-3823"><a href="#Case.when-3823"><span class="linenos">3823</span></a> <span class="n">true</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">then</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="Case.when-3824"><a href="#Case.when-3824"><span class="linenos">3824</span></a> <span class="p">),</span>
</span><span id="Case.when-3825"><a href="#Case.when-3825"><span class="linenos">3825</span></a> <span class="p">)</span>
</span><span id="Case.when-3826"><a href="#Case.when-3826"><span class="linenos">3826</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
</div>
<div id="Case.else_" class="classattr">
<input id="Case.else_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">else_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">condition</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Case">sqlglot.expressions.Case</a></span>:</span></span>
<label class="view-source-button" for="Case.else_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Case.else_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Case.else_-3828"><a href="#Case.else_-3828"><span class="linenos">3828</span></a> <span class="k">def</span> <span class="nf">else_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Case</span><span class="p">:</span>
</span><span id="Case.else_-3829"><a href="#Case.else_-3829"><span class="linenos">3829</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="Case.else_-3830"><a href="#Case.else_-3830"><span class="linenos">3830</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;default&quot;</span><span class="p">,</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">condition</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span><span id="Case.else_-3831"><a href="#Case.else_-3831"><span class="linenos">3831</span></a> <span class="k">return</span> <span class="n">instance</span>
</span></pre></div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Case.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Case.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Case.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Case.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Case.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Case.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Case.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Case.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Case.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Case.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Case.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Case.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Case.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Case.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Case.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Case.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Case.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Case.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Case.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Case.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Case.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Case.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Case.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Case.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Case.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Case.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Case.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Case.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Case.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Case.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Case.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Case.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Case.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Case.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Case.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Case.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Case.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Case.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Case.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Case.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Case.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Case.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Case.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Case.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Case.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Case.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Case.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Case.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Case.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Case.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Case.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Case.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Case.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Case.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Cast">
<input id="Cast-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Cast</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Cast-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Cast"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Cast-3834"><a href="#Cast-3834"><span class="linenos">3834</span></a><span class="k">class</span> <span class="nc">Cast</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Cast-3835"><a href="#Cast-3835"><span class="linenos">3835</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;to&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="Cast-3836"><a href="#Cast-3836"><span class="linenos">3836</span></a>
</span><span id="Cast-3837"><a href="#Cast-3837"><span class="linenos">3837</span></a> <span class="nd">@property</span>
</span><span id="Cast-3838"><a href="#Cast-3838"><span class="linenos">3838</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Cast-3839"><a href="#Cast-3839"><span class="linenos">3839</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span>
</span><span id="Cast-3840"><a href="#Cast-3840"><span class="linenos">3840</span></a>
</span><span id="Cast-3841"><a href="#Cast-3841"><span class="linenos">3841</span></a> <span class="nd">@property</span>
</span><span id="Cast-3842"><a href="#Cast-3842"><span class="linenos">3842</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">DataType</span><span class="p">:</span>
</span><span id="Cast-3843"><a href="#Cast-3843"><span class="linenos">3843</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">&quot;to&quot;</span><span class="p">]</span>
</span><span id="Cast-3844"><a href="#Cast-3844"><span class="linenos">3844</span></a>
</span><span id="Cast-3845"><a href="#Cast-3845"><span class="linenos">3845</span></a> <span class="nd">@property</span>
</span><span id="Cast-3846"><a href="#Cast-3846"><span class="linenos">3846</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="Cast-3847"><a href="#Cast-3847"><span class="linenos">3847</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</span><span id="Cast-3848"><a href="#Cast-3848"><span class="linenos">3848</span></a>
</span><span id="Cast-3849"><a href="#Cast-3849"><span class="linenos">3849</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="Cast-3850"><a href="#Cast-3850"><span class="linenos">3850</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
</span></pre></div>
<div id="Cast.output_name" class="classattr">
<div class="attr variable">
<span class="name">output_name</span><span class="annotation">: str</span>
</div>
<a class="headerlink" href="#Cast.output_name"></a>
<div class="docstring"><p>Name of the output column if this expression is a selection.</p>
<p>If the Expression has no output name, an empty string is returned.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT a&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;a&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT b AS c&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;c&#39;</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;SELECT 1 + 2&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">output_name</span>
<span class="go">&#39;&#39;</span>
</code></pre>
</div>
</blockquote>
</div>
</div>
<div id="Cast.is_type" class="classattr">
<input id="Cast.is_type-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">is_type</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">dtype</span><span class="p">:</span> <span class="n"><a href="#DataType.Type">sqlglot.expressions.DataType.Type</a></span></span><span class="return-annotation">) -> <span class="nb">bool</span>:</span></span>
<label class="view-source-button" for="Cast.is_type-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Cast.is_type"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Cast.is_type-3849"><a href="#Cast.is_type-3849"><span class="linenos">3849</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
</span><span id="Cast.is_type-3850"><a href="#Cast.is_type-3850"><span class="linenos">3850</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span>
</span></pre></div>
</div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Cast.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Cast.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Cast.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Cast.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Cast.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Cast.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Cast.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Cast.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Cast.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Cast.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Cast.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Cast.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Cast.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Cast.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Cast.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Cast.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Cast.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Cast.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Cast.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Cast.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Cast.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Cast.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Cast.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Cast.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Cast.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Cast.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Cast.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Cast.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Cast.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Cast.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Cast.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Cast.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Cast.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Cast.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Cast.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Cast.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Cast.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Cast.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Cast.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Cast.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Cast.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Cast.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Cast.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Cast.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Cast.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Cast.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Cast.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Cast.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Cast.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Cast.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Cast.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Cast.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Cast.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="CastToStrType">
<input id="CastToStrType-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CastToStrType</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="CastToStrType-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CastToStrType"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CastToStrType-3853"><a href="#CastToStrType-3853"><span class="linenos">3853</span></a><span class="k">class</span> <span class="nc">CastToStrType</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="CastToStrType-3854"><a href="#CastToStrType-3854"><span class="linenos">3854</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CastToStrType.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CastToStrType.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CastToStrType.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CastToStrType.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CastToStrType.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CastToStrType.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CastToStrType.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CastToStrType.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CastToStrType.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CastToStrType.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CastToStrType.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CastToStrType.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CastToStrType.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CastToStrType.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CastToStrType.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CastToStrType.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CastToStrType.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CastToStrType.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CastToStrType.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CastToStrType.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CastToStrType.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CastToStrType.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CastToStrType.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CastToStrType.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CastToStrType.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CastToStrType.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CastToStrType.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CastToStrType.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CastToStrType.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CastToStrType.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CastToStrType.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CastToStrType.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CastToStrType.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CastToStrType.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CastToStrType.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CastToStrType.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CastToStrType.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CastToStrType.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="CastToStrType.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="CastToStrType.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="CastToStrType.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="CastToStrType.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="CastToStrType.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="CastToStrType.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="CastToStrType.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="CastToStrType.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="CastToStrType.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="CastToStrType.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="CastToStrType.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="CastToStrType.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="CastToStrType.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="CastToStrType.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="CastToStrType.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="CastToStrType.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Collate">
<input id="Collate-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Collate</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="Collate-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Collate"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Collate-3857"><a href="#Collate-3857"><span class="linenos">3857</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="Collate-3858"><a href="#Collate-3858"><span class="linenos">3858</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Collate.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Collate.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Collate.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Collate.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Collate.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Collate.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Collate.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Collate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Collate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Collate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Collate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Collate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Collate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Collate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Collate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Collate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Collate.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Collate.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Collate.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Collate.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Collate.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Collate.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Collate.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Collate.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Collate.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Collate.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Collate.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Collate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Collate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Collate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Collate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Collate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Collate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Collate.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Collate.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Collate.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Collate.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Collate.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Collate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Collate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Collate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Collate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Collate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Collate.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Collate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Collate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Collate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Collate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Collate.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Collate.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="TryCast">
<input id="TryCast-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TryCast</span><wbr>(<span class="base"><a href="#Cast">Cast</a></span>):
<label class="view-source-button" for="TryCast-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TryCast"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TryCast-3861"><a href="#TryCast-3861"><span class="linenos">3861</span></a><span class="k">class</span> <span class="nc">TryCast</span><span class="p">(</span><span class="n">Cast</span><span class="p">):</span>
</span><span id="TryCast-3862"><a href="#TryCast-3862"><span class="linenos">3862</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TryCast.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TryCast.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TryCast.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TryCast.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TryCast.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TryCast.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TryCast.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TryCast.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TryCast.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TryCast.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TryCast.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TryCast.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TryCast.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TryCast.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TryCast.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TryCast.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TryCast.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TryCast.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TryCast.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TryCast.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TryCast.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TryCast.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TryCast.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TryCast.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TryCast.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TryCast.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TryCast.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TryCast.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TryCast.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TryCast.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TryCast.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TryCast.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TryCast.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TryCast.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TryCast.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TryCast.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TryCast.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Cast">Cast</a></dt>
<dd id="TryCast.output_name" class="variable"><a href="#Cast.output_name">output_name</a></dd>
<dd id="TryCast.is_type" class="function"><a href="#Cast.is_type">is_type</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TryCast.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TryCast.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TryCast.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TryCast.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TryCast.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TryCast.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TryCast.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TryCast.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TryCast.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TryCast.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TryCast.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TryCast.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TryCast.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TryCast.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TryCast.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TryCast.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Ceil">
<input id="Ceil-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Ceil</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Ceil-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Ceil"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Ceil-3865"><a href="#Ceil-3865"><span class="linenos">3865</span></a><span class="k">class</span> <span class="nc">Ceil</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Ceil-3866"><a href="#Ceil-3866"><span class="linenos">3866</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Ceil-3867"><a href="#Ceil-3867"><span class="linenos">3867</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CEIL&quot;</span><span class="p">,</span> <span class="s2">&quot;CEILING&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Ceil.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Ceil.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Ceil.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Ceil.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Ceil.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Ceil.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Ceil.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Ceil.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Ceil.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Ceil.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Ceil.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Ceil.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Ceil.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Ceil.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Ceil.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Ceil.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Ceil.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Ceil.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Ceil.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Ceil.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Ceil.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Ceil.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Ceil.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Ceil.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Ceil.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Ceil.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Ceil.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Ceil.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Ceil.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Ceil.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Ceil.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Ceil.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Ceil.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Ceil.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Ceil.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Ceil.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Ceil.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Ceil.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Ceil.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Ceil.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Ceil.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Ceil.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Ceil.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Ceil.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Ceil.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Ceil.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Ceil.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Ceil.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Ceil.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Ceil.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Ceil.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Ceil.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Ceil.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Ceil.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Coalesce">
<input id="Coalesce-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Coalesce</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Coalesce-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Coalesce"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Coalesce-3870"><a href="#Coalesce-3870"><span class="linenos">3870</span></a><span class="k">class</span> <span class="nc">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Coalesce-3871"><a href="#Coalesce-3871"><span class="linenos">3871</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Coalesce-3872"><a href="#Coalesce-3872"><span class="linenos">3872</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Coalesce.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Coalesce.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Coalesce.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Coalesce.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Coalesce.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Coalesce.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Coalesce.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Coalesce.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Coalesce.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Coalesce.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Coalesce.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Coalesce.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Coalesce.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Coalesce.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Coalesce.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Coalesce.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Coalesce.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Coalesce.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Coalesce.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Coalesce.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Coalesce.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Coalesce.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Coalesce.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Coalesce.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Coalesce.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Coalesce.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Coalesce.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Coalesce.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Coalesce.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Coalesce.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Coalesce.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Coalesce.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Coalesce.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Coalesce.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Coalesce.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Coalesce.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Coalesce.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Coalesce.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Coalesce.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Coalesce.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Coalesce.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Coalesce.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Coalesce.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Coalesce.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Coalesce.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Coalesce.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Coalesce.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Coalesce.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Coalesce.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Coalesce.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Coalesce.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Coalesce.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Coalesce.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Coalesce.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Concat">
<input id="Concat-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Concat</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Concat-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Concat"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Concat-3875"><a href="#Concat-3875"><span class="linenos">3875</span></a><span class="k">class</span> <span class="nc">Concat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Concat-3876"><a href="#Concat-3876"><span class="linenos">3876</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="Concat-3877"><a href="#Concat-3877"><span class="linenos">3877</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Concat.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Concat.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Concat.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Concat.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Concat.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Concat.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Concat.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Concat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Concat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Concat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Concat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Concat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Concat.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Concat.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Concat.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Concat.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Concat.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Concat.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Concat.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Concat.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Concat.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Concat.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Concat.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Concat.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Concat.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Concat.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Concat.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Concat.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Concat.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Concat.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Concat.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Concat.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Concat.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Concat.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Concat.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Concat.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Concat.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Concat.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Concat.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Concat.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Concat.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Concat.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Concat.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Concat.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Concat.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Concat.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Concat.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Concat.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Concat.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Concat.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Concat.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Concat.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Concat.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Concat.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ConcatWs">
<input id="ConcatWs-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ConcatWs</span><wbr>(<span class="base"><a href="#Concat">Concat</a></span>):
<label class="view-source-button" for="ConcatWs-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ConcatWs"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ConcatWs-3880"><a href="#ConcatWs-3880"><span class="linenos">3880</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span>
</span><span id="ConcatWs-3881"><a href="#ConcatWs-3881"><span class="linenos">3881</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;CONCAT_WS&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ConcatWs.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ConcatWs.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ConcatWs.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ConcatWs.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ConcatWs.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ConcatWs.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ConcatWs.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ConcatWs.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ConcatWs.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ConcatWs.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ConcatWs.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ConcatWs.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ConcatWs.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ConcatWs.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ConcatWs.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ConcatWs.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ConcatWs.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ConcatWs.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ConcatWs.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ConcatWs.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ConcatWs.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ConcatWs.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ConcatWs.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ConcatWs.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ConcatWs.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ConcatWs.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ConcatWs.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ConcatWs.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ConcatWs.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ConcatWs.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ConcatWs.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ConcatWs.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ConcatWs.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ConcatWs.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ConcatWs.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ConcatWs.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ConcatWs.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ConcatWs.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ConcatWs.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ConcatWs.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ConcatWs.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ConcatWs.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ConcatWs.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ConcatWs.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ConcatWs.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ConcatWs.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ConcatWs.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ConcatWs.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ConcatWs.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ConcatWs.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ConcatWs.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ConcatWs.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ConcatWs.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ConcatWs.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Count">
<input id="Count-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Count</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="Count-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Count"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Count-3884"><a href="#Count-3884"><span class="linenos">3884</span></a><span class="k">class</span> <span class="nc">Count</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="Count-3885"><a href="#Count-3885"><span class="linenos">3885</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Count.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Count.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Count.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Count.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Count.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Count.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Count.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Count.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Count.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Count.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Count.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Count.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Count.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Count.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Count.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Count.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Count.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Count.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Count.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Count.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Count.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Count.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Count.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Count.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Count.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Count.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Count.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Count.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Count.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Count.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Count.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Count.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Count.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Count.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Count.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Count.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Count.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Count.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Count.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Count.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Count.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Count.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Count.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Count.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Count.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Count.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Count.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Count.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Count.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Count.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Count.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Count.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Count.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Count.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="CountIf">
<input id="CountIf-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CountIf</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="CountIf-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CountIf"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CountIf-3888"><a href="#CountIf-3888"><span class="linenos">3888</span></a><span class="k">class</span> <span class="nc">CountIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="CountIf-3889"><a href="#CountIf-3889"><span class="linenos">3889</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CountIf.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CountIf.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CountIf.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CountIf.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CountIf.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CountIf.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CountIf.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CountIf.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CountIf.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CountIf.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CountIf.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CountIf.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CountIf.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CountIf.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CountIf.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CountIf.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CountIf.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CountIf.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CountIf.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CountIf.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CountIf.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CountIf.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CountIf.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CountIf.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CountIf.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CountIf.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CountIf.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CountIf.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CountIf.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CountIf.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CountIf.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CountIf.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CountIf.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CountIf.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CountIf.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CountIf.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CountIf.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CountIf.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="CountIf.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="CountIf.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="CountIf.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="CountIf.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="CountIf.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="CountIf.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="CountIf.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="CountIf.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="CountIf.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="CountIf.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="CountIf.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="CountIf.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="CountIf.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="CountIf.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="CountIf.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="CountIf.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="CurrentDate">
<input id="CurrentDate-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CurrentDate</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="CurrentDate-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CurrentDate"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDate-3892"><a href="#CurrentDate-3892"><span class="linenos">3892</span></a><span class="k">class</span> <span class="nc">CurrentDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="CurrentDate-3893"><a href="#CurrentDate-3893"><span class="linenos">3893</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CurrentDate.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CurrentDate.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CurrentDate.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CurrentDate.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CurrentDate.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CurrentDate.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CurrentDate.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CurrentDate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CurrentDate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CurrentDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CurrentDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CurrentDate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CurrentDate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CurrentDate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CurrentDate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CurrentDate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CurrentDate.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CurrentDate.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CurrentDate.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CurrentDate.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CurrentDate.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CurrentDate.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CurrentDate.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CurrentDate.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CurrentDate.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CurrentDate.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CurrentDate.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CurrentDate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CurrentDate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CurrentDate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CurrentDate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CurrentDate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CurrentDate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CurrentDate.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CurrentDate.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CurrentDate.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CurrentDate.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CurrentDate.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="CurrentDate.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="CurrentDate.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="CurrentDate.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="CurrentDate.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="CurrentDate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="CurrentDate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="CurrentDate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="CurrentDate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="CurrentDate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="CurrentDate.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="CurrentDate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="CurrentDate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="CurrentDate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="CurrentDate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="CurrentDate.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="CurrentDate.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="CurrentDatetime">
<input id="CurrentDatetime-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CurrentDatetime</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="CurrentDatetime-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CurrentDatetime"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDatetime-3896"><a href="#CurrentDatetime-3896"><span class="linenos">3896</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="CurrentDatetime-3897"><a href="#CurrentDatetime-3897"><span class="linenos">3897</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CurrentDatetime.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CurrentDatetime.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CurrentDatetime.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CurrentDatetime.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CurrentDatetime.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CurrentDatetime.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CurrentDatetime.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CurrentDatetime.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CurrentDatetime.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CurrentDatetime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CurrentDatetime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CurrentDatetime.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CurrentDatetime.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CurrentDatetime.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CurrentDatetime.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CurrentDatetime.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CurrentDatetime.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CurrentDatetime.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CurrentDatetime.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CurrentDatetime.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CurrentDatetime.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CurrentDatetime.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CurrentDatetime.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CurrentDatetime.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CurrentDatetime.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CurrentDatetime.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CurrentDatetime.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CurrentDatetime.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CurrentDatetime.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CurrentDatetime.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CurrentDatetime.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CurrentDatetime.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CurrentDatetime.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CurrentDatetime.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CurrentDatetime.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CurrentDatetime.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CurrentDatetime.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CurrentDatetime.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="CurrentDatetime.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="CurrentDatetime.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="CurrentDatetime.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="CurrentDatetime.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="CurrentDatetime.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="CurrentDatetime.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="CurrentDatetime.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="CurrentDatetime.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="CurrentDatetime.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="CurrentDatetime.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="CurrentDatetime.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="CurrentDatetime.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="CurrentDatetime.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="CurrentDatetime.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="CurrentDatetime.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="CurrentDatetime.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="CurrentTime">
<input id="CurrentTime-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CurrentTime</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="CurrentTime-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CurrentTime"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTime-3900"><a href="#CurrentTime-3900"><span class="linenos">3900</span></a><span class="k">class</span> <span class="nc">CurrentTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="CurrentTime-3901"><a href="#CurrentTime-3901"><span class="linenos">3901</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CurrentTime.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CurrentTime.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CurrentTime.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CurrentTime.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CurrentTime.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CurrentTime.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CurrentTime.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CurrentTime.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CurrentTime.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CurrentTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CurrentTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CurrentTime.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CurrentTime.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CurrentTime.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CurrentTime.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CurrentTime.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CurrentTime.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CurrentTime.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CurrentTime.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CurrentTime.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CurrentTime.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CurrentTime.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CurrentTime.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CurrentTime.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CurrentTime.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CurrentTime.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CurrentTime.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CurrentTime.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CurrentTime.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CurrentTime.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CurrentTime.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CurrentTime.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CurrentTime.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CurrentTime.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CurrentTime.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CurrentTime.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CurrentTime.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CurrentTime.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="CurrentTime.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="CurrentTime.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="CurrentTime.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="CurrentTime.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="CurrentTime.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="CurrentTime.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="CurrentTime.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="CurrentTime.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="CurrentTime.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="CurrentTime.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="CurrentTime.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="CurrentTime.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="CurrentTime.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="CurrentTime.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="CurrentTime.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="CurrentTime.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="CurrentTimestamp">
<input id="CurrentTimestamp-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CurrentTimestamp</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="CurrentTimestamp-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CurrentTimestamp"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTimestamp-3904"><a href="#CurrentTimestamp-3904"><span class="linenos">3904</span></a><span class="k">class</span> <span class="nc">CurrentTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="CurrentTimestamp-3905"><a href="#CurrentTimestamp-3905"><span class="linenos">3905</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CurrentTimestamp.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CurrentTimestamp.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CurrentTimestamp.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CurrentTimestamp.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CurrentTimestamp.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CurrentTimestamp.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CurrentTimestamp.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CurrentTimestamp.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CurrentTimestamp.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CurrentTimestamp.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CurrentTimestamp.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CurrentTimestamp.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CurrentTimestamp.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CurrentTimestamp.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CurrentTimestamp.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CurrentTimestamp.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CurrentTimestamp.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CurrentTimestamp.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CurrentTimestamp.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CurrentTimestamp.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CurrentTimestamp.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CurrentTimestamp.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CurrentTimestamp.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CurrentTimestamp.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CurrentTimestamp.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CurrentTimestamp.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CurrentTimestamp.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CurrentTimestamp.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CurrentTimestamp.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CurrentTimestamp.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CurrentTimestamp.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CurrentTimestamp.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CurrentTimestamp.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CurrentTimestamp.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CurrentTimestamp.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CurrentTimestamp.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CurrentTimestamp.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CurrentTimestamp.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="CurrentTimestamp.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="CurrentTimestamp.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="CurrentTimestamp.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="CurrentTimestamp.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="CurrentTimestamp.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="CurrentTimestamp.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="CurrentTimestamp.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="CurrentTimestamp.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="CurrentTimestamp.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="CurrentTimestamp.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="CurrentTimestamp.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="CurrentTimestamp.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="CurrentTimestamp.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="CurrentTimestamp.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="CurrentTimestamp.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="CurrentTimestamp.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="CurrentUser">
<input id="CurrentUser-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">CurrentUser</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="CurrentUser-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#CurrentUser"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="CurrentUser-3908"><a href="#CurrentUser-3908"><span class="linenos">3908</span></a><span class="k">class</span> <span class="nc">CurrentUser</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="CurrentUser-3909"><a href="#CurrentUser-3909"><span class="linenos">3909</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="CurrentUser.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="CurrentUser.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="CurrentUser.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="CurrentUser.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="CurrentUser.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="CurrentUser.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="CurrentUser.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="CurrentUser.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="CurrentUser.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="CurrentUser.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="CurrentUser.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="CurrentUser.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="CurrentUser.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="CurrentUser.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="CurrentUser.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="CurrentUser.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="CurrentUser.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="CurrentUser.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="CurrentUser.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="CurrentUser.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="CurrentUser.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="CurrentUser.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="CurrentUser.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="CurrentUser.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="CurrentUser.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="CurrentUser.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="CurrentUser.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="CurrentUser.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="CurrentUser.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="CurrentUser.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="CurrentUser.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="CurrentUser.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="CurrentUser.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="CurrentUser.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="CurrentUser.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="CurrentUser.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="CurrentUser.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="CurrentUser.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="CurrentUser.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="CurrentUser.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="CurrentUser.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="CurrentUser.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="CurrentUser.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="CurrentUser.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="CurrentUser.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="CurrentUser.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="CurrentUser.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="CurrentUser.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="CurrentUser.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="CurrentUser.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="CurrentUser.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="CurrentUser.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="CurrentUser.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="CurrentUser.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="DateAdd">
<input id="DateAdd-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DateAdd</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="DateAdd-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DateAdd"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DateAdd-3912"><a href="#DateAdd-3912"><span class="linenos">3912</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="DateAdd-3913"><a href="#DateAdd-3913"><span class="linenos">3913</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="DateAdd.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DateAdd.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DateAdd.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DateAdd.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DateAdd.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DateAdd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateAdd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateAdd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DateAdd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateAdd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateAdd.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DateAdd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateAdd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateAdd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateAdd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DateAdd.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DateAdd.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DateAdd.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DateAdd.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DateAdd.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DateAdd.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DateAdd.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DateAdd.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DateAdd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateAdd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateAdd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateAdd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DateAdd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateAdd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateAdd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DateAdd.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DateAdd.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DateAdd.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DateAdd.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DateAdd.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DateAdd.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DateAdd.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DateAdd.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DateAdd.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DateAdd.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DateAdd.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DateAdd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateAdd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateAdd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DateAdd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateAdd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateAdd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DateAdd.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DateAdd.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DateAdd.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DateAdd.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DateAdd.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DateSub">
<input id="DateSub-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DateSub</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="DateSub-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DateSub"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DateSub-3916"><a href="#DateSub-3916"><span class="linenos">3916</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="DateSub-3917"><a href="#DateSub-3917"><span class="linenos">3917</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="DateSub.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DateSub.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DateSub.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DateSub.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DateSub.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DateSub.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateSub.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateSub.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DateSub.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateSub.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateSub.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DateSub.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateSub.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateSub.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateSub.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DateSub.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DateSub.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DateSub.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DateSub.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DateSub.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DateSub.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DateSub.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DateSub.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DateSub.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateSub.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateSub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateSub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateSub.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateSub.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DateSub.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateSub.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateSub.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DateSub.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DateSub.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DateSub.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DateSub.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DateSub.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DateSub.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DateSub.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DateSub.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DateSub.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DateSub.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DateSub.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DateSub.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateSub.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateSub.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DateSub.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateSub.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateSub.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DateSub.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DateSub.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DateSub.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DateSub.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DateSub.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DateDiff">
<input id="DateDiff-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DateDiff</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="DateDiff-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DateDiff"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DateDiff-3920"><a href="#DateDiff-3920"><span class="linenos">3920</span></a><span class="k">class</span> <span class="nc">DateDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="DateDiff-3921"><a href="#DateDiff-3921"><span class="linenos">3921</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEDIFF&quot;</span><span class="p">,</span> <span class="s2">&quot;DATE_DIFF&quot;</span><span class="p">]</span>
</span><span id="DateDiff-3922"><a href="#DateDiff-3922"><span class="linenos">3922</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="DateDiff.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DateDiff.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DateDiff.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DateDiff.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DateDiff.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DateDiff.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateDiff.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateDiff.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DateDiff.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateDiff.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateDiff.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DateDiff.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateDiff.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateDiff.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateDiff.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DateDiff.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DateDiff.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DateDiff.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DateDiff.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DateDiff.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DateDiff.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DateDiff.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DateDiff.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DateDiff.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateDiff.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateDiff.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateDiff.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateDiff.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DateDiff.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateDiff.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateDiff.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DateDiff.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DateDiff.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DateDiff.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DateDiff.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DateDiff.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DateDiff.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DateDiff.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DateDiff.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DateDiff.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DateDiff.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DateDiff.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DateDiff.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateDiff.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateDiff.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DateDiff.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateDiff.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateDiff.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DateDiff.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DateDiff.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DateDiff.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DateDiff.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DateDiff.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DateTrunc">
<input id="DateTrunc-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DateTrunc</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="DateTrunc-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DateTrunc"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc-3925"><a href="#DateTrunc-3925"><span class="linenos">3925</span></a><span class="k">class</span> <span class="nc">DateTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="DateTrunc-3926"><a href="#DateTrunc-3926"><span class="linenos">3926</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DateTrunc.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DateTrunc.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DateTrunc.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DateTrunc.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DateTrunc.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DateTrunc.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DateTrunc.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DateTrunc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateTrunc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateTrunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateTrunc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateTrunc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DateTrunc.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateTrunc.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateTrunc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DateTrunc.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DateTrunc.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DateTrunc.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DateTrunc.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DateTrunc.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DateTrunc.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DateTrunc.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DateTrunc.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DateTrunc.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DateTrunc.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DateTrunc.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DateTrunc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateTrunc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateTrunc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DateTrunc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateTrunc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateTrunc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DateTrunc.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DateTrunc.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DateTrunc.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DateTrunc.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DateTrunc.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DateTrunc.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DateTrunc.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DateTrunc.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DateTrunc.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DateTrunc.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateTrunc.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateTrunc.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DateTrunc.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateTrunc.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateTrunc.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DateTrunc.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateTrunc.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateTrunc.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateTrunc.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DateTrunc.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DateTrunc.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="DatetimeAdd">
<input id="DatetimeAdd-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DatetimeAdd</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="DatetimeAdd-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DatetimeAdd"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeAdd-3929"><a href="#DatetimeAdd-3929"><span class="linenos">3929</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="DatetimeAdd-3930"><a href="#DatetimeAdd-3930"><span class="linenos">3930</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="DatetimeAdd.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DatetimeAdd.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DatetimeAdd.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DatetimeAdd.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DatetimeAdd.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DatetimeAdd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DatetimeAdd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DatetimeAdd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DatetimeAdd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DatetimeAdd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DatetimeAdd.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DatetimeAdd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DatetimeAdd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DatetimeAdd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DatetimeAdd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DatetimeAdd.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DatetimeAdd.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DatetimeAdd.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DatetimeAdd.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DatetimeAdd.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DatetimeAdd.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DatetimeAdd.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DatetimeAdd.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DatetimeAdd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DatetimeAdd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DatetimeAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DatetimeAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DatetimeAdd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DatetimeAdd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DatetimeAdd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DatetimeAdd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DatetimeAdd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DatetimeAdd.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DatetimeAdd.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DatetimeAdd.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DatetimeAdd.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DatetimeAdd.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DatetimeAdd.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DatetimeAdd.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DatetimeAdd.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DatetimeAdd.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DatetimeAdd.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DatetimeAdd.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DatetimeAdd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DatetimeAdd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DatetimeAdd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DatetimeAdd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DatetimeAdd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DatetimeAdd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DatetimeAdd.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DatetimeAdd.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DatetimeAdd.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DatetimeAdd.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DatetimeAdd.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DatetimeSub">
<input id="DatetimeSub-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DatetimeSub</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="DatetimeSub-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DatetimeSub"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeSub-3933"><a href="#DatetimeSub-3933"><span class="linenos">3933</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="DatetimeSub-3934"><a href="#DatetimeSub-3934"><span class="linenos">3934</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="DatetimeSub.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DatetimeSub.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DatetimeSub.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DatetimeSub.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DatetimeSub.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DatetimeSub.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DatetimeSub.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DatetimeSub.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DatetimeSub.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DatetimeSub.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DatetimeSub.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DatetimeSub.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DatetimeSub.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DatetimeSub.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DatetimeSub.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DatetimeSub.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DatetimeSub.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DatetimeSub.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DatetimeSub.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DatetimeSub.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DatetimeSub.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DatetimeSub.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DatetimeSub.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DatetimeSub.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DatetimeSub.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DatetimeSub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DatetimeSub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DatetimeSub.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DatetimeSub.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DatetimeSub.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DatetimeSub.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DatetimeSub.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DatetimeSub.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DatetimeSub.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DatetimeSub.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DatetimeSub.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DatetimeSub.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DatetimeSub.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DatetimeSub.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DatetimeSub.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DatetimeSub.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DatetimeSub.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DatetimeSub.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DatetimeSub.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DatetimeSub.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DatetimeSub.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DatetimeSub.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DatetimeSub.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DatetimeSub.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DatetimeSub.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DatetimeSub.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DatetimeSub.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DatetimeSub.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DatetimeSub.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DatetimeDiff">
<input id="DatetimeDiff-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DatetimeDiff</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="DatetimeDiff-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DatetimeDiff"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeDiff-3937"><a href="#DatetimeDiff-3937"><span class="linenos">3937</span></a><span class="k">class</span> <span class="nc">DatetimeDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="DatetimeDiff-3938"><a href="#DatetimeDiff-3938"><span class="linenos">3938</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="DatetimeDiff.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DatetimeDiff.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DatetimeDiff.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DatetimeDiff.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DatetimeDiff.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DatetimeDiff.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DatetimeDiff.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DatetimeDiff.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DatetimeDiff.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DatetimeDiff.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DatetimeDiff.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DatetimeDiff.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DatetimeDiff.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DatetimeDiff.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DatetimeDiff.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DatetimeDiff.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DatetimeDiff.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DatetimeDiff.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DatetimeDiff.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DatetimeDiff.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DatetimeDiff.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DatetimeDiff.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DatetimeDiff.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DatetimeDiff.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DatetimeDiff.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DatetimeDiff.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DatetimeDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DatetimeDiff.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DatetimeDiff.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DatetimeDiff.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DatetimeDiff.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DatetimeDiff.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DatetimeDiff.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DatetimeDiff.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DatetimeDiff.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DatetimeDiff.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DatetimeDiff.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DatetimeDiff.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DatetimeDiff.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DatetimeDiff.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DatetimeDiff.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DatetimeDiff.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DatetimeDiff.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DatetimeDiff.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DatetimeDiff.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DatetimeDiff.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DatetimeDiff.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DatetimeDiff.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DatetimeDiff.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DatetimeDiff.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DatetimeDiff.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DatetimeDiff.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DatetimeDiff.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DatetimeDiff.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DatetimeTrunc">
<input id="DatetimeTrunc-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DatetimeTrunc</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="DatetimeTrunc-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DatetimeTrunc"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeTrunc-3941"><a href="#DatetimeTrunc-3941"><span class="linenos">3941</span></a><span class="k">class</span> <span class="nc">DatetimeTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="DatetimeTrunc-3942"><a href="#DatetimeTrunc-3942"><span class="linenos">3942</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="DatetimeTrunc.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DatetimeTrunc.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DatetimeTrunc.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DatetimeTrunc.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DatetimeTrunc.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DatetimeTrunc.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DatetimeTrunc.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DatetimeTrunc.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DatetimeTrunc.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DatetimeTrunc.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DatetimeTrunc.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DatetimeTrunc.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DatetimeTrunc.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DatetimeTrunc.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DatetimeTrunc.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DatetimeTrunc.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DatetimeTrunc.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DatetimeTrunc.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DatetimeTrunc.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DatetimeTrunc.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DatetimeTrunc.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DatetimeTrunc.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DatetimeTrunc.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DatetimeTrunc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DatetimeTrunc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DatetimeTrunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DatetimeTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DatetimeTrunc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DatetimeTrunc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DatetimeTrunc.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DatetimeTrunc.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DatetimeTrunc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DatetimeTrunc.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DatetimeTrunc.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DatetimeTrunc.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DatetimeTrunc.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DatetimeTrunc.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DatetimeTrunc.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DatetimeTrunc.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DatetimeTrunc.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DatetimeTrunc.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DatetimeTrunc.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DatetimeTrunc.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DatetimeTrunc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DatetimeTrunc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DatetimeTrunc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DatetimeTrunc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DatetimeTrunc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DatetimeTrunc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DatetimeTrunc.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DatetimeTrunc.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DatetimeTrunc.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DatetimeTrunc.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DatetimeTrunc.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DayOfWeek">
<input id="DayOfWeek-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DayOfWeek</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="DayOfWeek-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DayOfWeek"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DayOfWeek-3945"><a href="#DayOfWeek-3945"><span class="linenos">3945</span></a><span class="k">class</span> <span class="nc">DayOfWeek</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="DayOfWeek-3946"><a href="#DayOfWeek-3946"><span class="linenos">3946</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_WEEK&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFWEEK&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DayOfWeek.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DayOfWeek.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DayOfWeek.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DayOfWeek.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DayOfWeek.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DayOfWeek.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DayOfWeek.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DayOfWeek.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DayOfWeek.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DayOfWeek.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DayOfWeek.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DayOfWeek.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DayOfWeek.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DayOfWeek.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DayOfWeek.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DayOfWeek.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DayOfWeek.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DayOfWeek.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DayOfWeek.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DayOfWeek.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DayOfWeek.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DayOfWeek.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DayOfWeek.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DayOfWeek.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DayOfWeek.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DayOfWeek.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DayOfWeek.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DayOfWeek.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DayOfWeek.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DayOfWeek.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DayOfWeek.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DayOfWeek.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DayOfWeek.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DayOfWeek.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DayOfWeek.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DayOfWeek.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DayOfWeek.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DayOfWeek.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DayOfWeek.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DayOfWeek.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DayOfWeek.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DayOfWeek.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DayOfWeek.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DayOfWeek.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DayOfWeek.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DayOfWeek.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DayOfWeek.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DayOfWeek.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DayOfWeek.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DayOfWeek.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DayOfWeek.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DayOfWeek.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DayOfWeek.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DayOfWeek.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="DayOfMonth">
<input id="DayOfMonth-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DayOfMonth</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="DayOfMonth-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DayOfMonth"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DayOfMonth-3949"><a href="#DayOfMonth-3949"><span class="linenos">3949</span></a><span class="k">class</span> <span class="nc">DayOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="DayOfMonth-3950"><a href="#DayOfMonth-3950"><span class="linenos">3950</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_MONTH&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFMONTH&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DayOfMonth.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DayOfMonth.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DayOfMonth.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DayOfMonth.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DayOfMonth.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DayOfMonth.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DayOfMonth.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DayOfMonth.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DayOfMonth.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DayOfMonth.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DayOfMonth.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DayOfMonth.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DayOfMonth.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DayOfMonth.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DayOfMonth.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DayOfMonth.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DayOfMonth.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DayOfMonth.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DayOfMonth.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DayOfMonth.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DayOfMonth.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DayOfMonth.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DayOfMonth.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DayOfMonth.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DayOfMonth.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DayOfMonth.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DayOfMonth.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DayOfMonth.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DayOfMonth.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DayOfMonth.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DayOfMonth.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DayOfMonth.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DayOfMonth.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DayOfMonth.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DayOfMonth.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DayOfMonth.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DayOfMonth.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DayOfMonth.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DayOfMonth.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DayOfMonth.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DayOfMonth.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DayOfMonth.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DayOfMonth.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DayOfMonth.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DayOfMonth.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DayOfMonth.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DayOfMonth.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DayOfMonth.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DayOfMonth.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DayOfMonth.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DayOfMonth.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DayOfMonth.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DayOfMonth.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DayOfMonth.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="DayOfYear">
<input id="DayOfYear-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DayOfYear</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="DayOfYear-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DayOfYear"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DayOfYear-3953"><a href="#DayOfYear-3953"><span class="linenos">3953</span></a><span class="k">class</span> <span class="nc">DayOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="DayOfYear-3954"><a href="#DayOfYear-3954"><span class="linenos">3954</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DAY_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;DAYOFYEAR&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DayOfYear.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DayOfYear.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DayOfYear.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DayOfYear.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DayOfYear.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DayOfYear.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DayOfYear.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DayOfYear.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DayOfYear.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DayOfYear.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DayOfYear.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DayOfYear.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DayOfYear.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DayOfYear.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DayOfYear.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DayOfYear.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DayOfYear.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DayOfYear.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DayOfYear.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DayOfYear.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DayOfYear.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DayOfYear.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DayOfYear.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DayOfYear.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DayOfYear.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DayOfYear.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DayOfYear.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DayOfYear.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DayOfYear.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DayOfYear.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DayOfYear.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DayOfYear.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DayOfYear.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DayOfYear.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DayOfYear.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DayOfYear.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DayOfYear.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DayOfYear.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DayOfYear.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DayOfYear.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DayOfYear.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DayOfYear.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DayOfYear.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DayOfYear.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DayOfYear.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DayOfYear.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DayOfYear.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DayOfYear.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DayOfYear.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DayOfYear.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DayOfYear.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DayOfYear.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DayOfYear.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DayOfYear.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="WeekOfYear">
<input id="WeekOfYear-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">WeekOfYear</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="WeekOfYear-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#WeekOfYear"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="WeekOfYear-3957"><a href="#WeekOfYear-3957"><span class="linenos">3957</span></a><span class="k">class</span> <span class="nc">WeekOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="WeekOfYear-3958"><a href="#WeekOfYear-3958"><span class="linenos">3958</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;WEEK_OF_YEAR&quot;</span><span class="p">,</span> <span class="s2">&quot;WEEKOFYEAR&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="WeekOfYear.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="WeekOfYear.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="WeekOfYear.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="WeekOfYear.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="WeekOfYear.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="WeekOfYear.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="WeekOfYear.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="WeekOfYear.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="WeekOfYear.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="WeekOfYear.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="WeekOfYear.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="WeekOfYear.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="WeekOfYear.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="WeekOfYear.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="WeekOfYear.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="WeekOfYear.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="WeekOfYear.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="WeekOfYear.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="WeekOfYear.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="WeekOfYear.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="WeekOfYear.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="WeekOfYear.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="WeekOfYear.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="WeekOfYear.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="WeekOfYear.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="WeekOfYear.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="WeekOfYear.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="WeekOfYear.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="WeekOfYear.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="WeekOfYear.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="WeekOfYear.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="WeekOfYear.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="WeekOfYear.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="WeekOfYear.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="WeekOfYear.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="WeekOfYear.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="WeekOfYear.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="WeekOfYear.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="WeekOfYear.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="WeekOfYear.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="WeekOfYear.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="WeekOfYear.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="WeekOfYear.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="WeekOfYear.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="WeekOfYear.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="WeekOfYear.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="WeekOfYear.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="WeekOfYear.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="WeekOfYear.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="WeekOfYear.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="WeekOfYear.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="WeekOfYear.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="WeekOfYear.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="WeekOfYear.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="LastDateOfMonth">
<input id="LastDateOfMonth-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">LastDateOfMonth</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="LastDateOfMonth-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#LastDateOfMonth"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="LastDateOfMonth-3961"><a href="#LastDateOfMonth-3961"><span class="linenos">3961</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="LastDateOfMonth-3962"><a href="#LastDateOfMonth-3962"><span class="linenos">3962</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="LastDateOfMonth.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="LastDateOfMonth.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="LastDateOfMonth.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="LastDateOfMonth.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="LastDateOfMonth.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="LastDateOfMonth.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="LastDateOfMonth.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="LastDateOfMonth.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LastDateOfMonth.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LastDateOfMonth.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LastDateOfMonth.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LastDateOfMonth.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LastDateOfMonth.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="LastDateOfMonth.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LastDateOfMonth.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LastDateOfMonth.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="LastDateOfMonth.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="LastDateOfMonth.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="LastDateOfMonth.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="LastDateOfMonth.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="LastDateOfMonth.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="LastDateOfMonth.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="LastDateOfMonth.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="LastDateOfMonth.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="LastDateOfMonth.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="LastDateOfMonth.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="LastDateOfMonth.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="LastDateOfMonth.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LastDateOfMonth.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LastDateOfMonth.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="LastDateOfMonth.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LastDateOfMonth.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LastDateOfMonth.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="LastDateOfMonth.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="LastDateOfMonth.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="LastDateOfMonth.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="LastDateOfMonth.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="LastDateOfMonth.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="LastDateOfMonth.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="LastDateOfMonth.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="LastDateOfMonth.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="LastDateOfMonth.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="LastDateOfMonth.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="LastDateOfMonth.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="LastDateOfMonth.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="LastDateOfMonth.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="LastDateOfMonth.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="LastDateOfMonth.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="LastDateOfMonth.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="LastDateOfMonth.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="LastDateOfMonth.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="LastDateOfMonth.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="LastDateOfMonth.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="LastDateOfMonth.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Extract">
<input id="Extract-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Extract</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Extract-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Extract"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Extract-3965"><a href="#Extract-3965"><span class="linenos">3965</span></a><span class="k">class</span> <span class="nc">Extract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Extract-3966"><a href="#Extract-3966"><span class="linenos">3966</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Extract.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Extract.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Extract.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Extract.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Extract.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Extract.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Extract.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Extract.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Extract.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Extract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Extract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Extract.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Extract.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Extract.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Extract.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Extract.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Extract.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Extract.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Extract.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Extract.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Extract.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Extract.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Extract.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Extract.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Extract.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Extract.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Extract.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Extract.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Extract.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Extract.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Extract.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Extract.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Extract.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Extract.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Extract.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Extract.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Extract.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Extract.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Extract.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Extract.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Extract.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Extract.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Extract.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Extract.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Extract.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Extract.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Extract.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Extract.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Extract.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Extract.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Extract.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Extract.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Extract.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Extract.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimestampAdd">
<input id="TimestampAdd-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimestampAdd</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="TimestampAdd-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimestampAdd"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimestampAdd-3969"><a href="#TimestampAdd-3969"><span class="linenos">3969</span></a><span class="k">class</span> <span class="nc">TimestampAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="TimestampAdd-3970"><a href="#TimestampAdd-3970"><span class="linenos">3970</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="TimestampAdd.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimestampAdd.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimestampAdd.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimestampAdd.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimestampAdd.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimestampAdd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimestampAdd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimestampAdd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimestampAdd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimestampAdd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimestampAdd.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimestampAdd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimestampAdd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimestampAdd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimestampAdd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimestampAdd.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimestampAdd.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimestampAdd.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimestampAdd.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimestampAdd.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimestampAdd.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimestampAdd.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimestampAdd.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimestampAdd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimestampAdd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimestampAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimestampAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimestampAdd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimestampAdd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimestampAdd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimestampAdd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimestampAdd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimestampAdd.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimestampAdd.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimestampAdd.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimestampAdd.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimestampAdd.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimestampAdd.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimestampAdd.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimestampAdd.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimestampAdd.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimestampAdd.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimestampAdd.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimestampAdd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimestampAdd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimestampAdd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimestampAdd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimestampAdd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimestampAdd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimestampAdd.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimestampAdd.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimestampAdd.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimestampAdd.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimestampAdd.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimestampSub">
<input id="TimestampSub-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimestampSub</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="TimestampSub-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimestampSub"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimestampSub-3973"><a href="#TimestampSub-3973"><span class="linenos">3973</span></a><span class="k">class</span> <span class="nc">TimestampSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="TimestampSub-3974"><a href="#TimestampSub-3974"><span class="linenos">3974</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="TimestampSub.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimestampSub.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimestampSub.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimestampSub.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimestampSub.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimestampSub.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimestampSub.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimestampSub.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimestampSub.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimestampSub.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimestampSub.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimestampSub.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimestampSub.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimestampSub.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimestampSub.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimestampSub.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimestampSub.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimestampSub.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimestampSub.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimestampSub.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimestampSub.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimestampSub.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimestampSub.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimestampSub.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimestampSub.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimestampSub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimestampSub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimestampSub.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimestampSub.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimestampSub.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimestampSub.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimestampSub.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimestampSub.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimestampSub.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimestampSub.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimestampSub.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimestampSub.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimestampSub.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimestampSub.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimestampSub.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimestampSub.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimestampSub.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimestampSub.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimestampSub.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimestampSub.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimestampSub.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimestampSub.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimestampSub.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimestampSub.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimestampSub.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimestampSub.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimestampSub.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimestampSub.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimestampSub.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimestampDiff">
<input id="TimestampDiff-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimestampDiff</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="TimestampDiff-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimestampDiff"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimestampDiff-3977"><a href="#TimestampDiff-3977"><span class="linenos">3977</span></a><span class="k">class</span> <span class="nc">TimestampDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="TimestampDiff-3978"><a href="#TimestampDiff-3978"><span class="linenos">3978</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="TimestampDiff.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimestampDiff.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimestampDiff.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimestampDiff.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimestampDiff.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimestampDiff.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimestampDiff.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimestampDiff.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimestampDiff.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimestampDiff.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimestampDiff.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimestampDiff.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimestampDiff.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimestampDiff.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimestampDiff.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimestampDiff.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimestampDiff.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimestampDiff.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimestampDiff.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimestampDiff.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimestampDiff.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimestampDiff.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimestampDiff.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimestampDiff.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimestampDiff.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimestampDiff.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimestampDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimestampDiff.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimestampDiff.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimestampDiff.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimestampDiff.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimestampDiff.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimestampDiff.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimestampDiff.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimestampDiff.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimestampDiff.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimestampDiff.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimestampDiff.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimestampDiff.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimestampDiff.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimestampDiff.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimestampDiff.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimestampDiff.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimestampDiff.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimestampDiff.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimestampDiff.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimestampDiff.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimestampDiff.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimestampDiff.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimestampDiff.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimestampDiff.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimestampDiff.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimestampDiff.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimestampDiff.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimestampTrunc">
<input id="TimestampTrunc-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimestampTrunc</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="TimestampTrunc-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimestampTrunc"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimestampTrunc-3981"><a href="#TimestampTrunc-3981"><span class="linenos">3981</span></a><span class="k">class</span> <span class="nc">TimestampTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="TimestampTrunc-3982"><a href="#TimestampTrunc-3982"><span class="linenos">3982</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="TimestampTrunc.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimestampTrunc.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimestampTrunc.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimestampTrunc.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimestampTrunc.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimestampTrunc.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimestampTrunc.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimestampTrunc.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimestampTrunc.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimestampTrunc.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimestampTrunc.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimestampTrunc.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimestampTrunc.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimestampTrunc.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimestampTrunc.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimestampTrunc.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimestampTrunc.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimestampTrunc.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimestampTrunc.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimestampTrunc.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimestampTrunc.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimestampTrunc.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimestampTrunc.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimestampTrunc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimestampTrunc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimestampTrunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimestampTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimestampTrunc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimestampTrunc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimestampTrunc.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimestampTrunc.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimestampTrunc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimestampTrunc.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimestampTrunc.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimestampTrunc.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimestampTrunc.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimestampTrunc.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimestampTrunc.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimestampTrunc.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimestampTrunc.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimestampTrunc.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimestampTrunc.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimestampTrunc.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimestampTrunc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimestampTrunc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimestampTrunc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimestampTrunc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimestampTrunc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimestampTrunc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimestampTrunc.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimestampTrunc.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimestampTrunc.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimestampTrunc.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimestampTrunc.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimeAdd">
<input id="TimeAdd-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimeAdd</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="TimeAdd-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimeAdd"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimeAdd-3985"><a href="#TimeAdd-3985"><span class="linenos">3985</span></a><span class="k">class</span> <span class="nc">TimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="TimeAdd-3986"><a href="#TimeAdd-3986"><span class="linenos">3986</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="TimeAdd.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimeAdd.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimeAdd.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimeAdd.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimeAdd.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimeAdd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeAdd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeAdd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimeAdd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeAdd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeAdd.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimeAdd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeAdd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeAdd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeAdd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimeAdd.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimeAdd.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimeAdd.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimeAdd.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimeAdd.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimeAdd.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimeAdd.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimeAdd.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimeAdd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeAdd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeAdd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeAdd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimeAdd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeAdd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeAdd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimeAdd.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimeAdd.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimeAdd.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimeAdd.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimeAdd.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimeAdd.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimeAdd.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimeAdd.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimeAdd.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimeAdd.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimeAdd.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimeAdd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeAdd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeAdd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimeAdd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeAdd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeAdd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimeAdd.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimeAdd.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimeAdd.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimeAdd.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimeAdd.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimeSub">
<input id="TimeSub-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimeSub</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="TimeSub-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimeSub"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimeSub-3989"><a href="#TimeSub-3989"><span class="linenos">3989</span></a><span class="k">class</span> <span class="nc">TimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="TimeSub-3990"><a href="#TimeSub-3990"><span class="linenos">3990</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="TimeSub.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimeSub.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimeSub.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimeSub.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimeSub.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimeSub.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeSub.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeSub.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimeSub.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeSub.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeSub.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimeSub.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeSub.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeSub.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeSub.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimeSub.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimeSub.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimeSub.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimeSub.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimeSub.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimeSub.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimeSub.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimeSub.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimeSub.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeSub.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeSub.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeSub.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeSub.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeSub.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimeSub.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeSub.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeSub.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimeSub.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimeSub.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimeSub.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimeSub.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimeSub.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimeSub.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimeSub.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimeSub.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimeSub.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimeSub.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimeSub.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimeSub.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeSub.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeSub.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimeSub.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeSub.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeSub.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimeSub.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimeSub.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimeSub.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimeSub.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimeSub.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimeDiff">
<input id="TimeDiff-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimeDiff</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="TimeDiff-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimeDiff"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimeDiff-3993"><a href="#TimeDiff-3993"><span class="linenos">3993</span></a><span class="k">class</span> <span class="nc">TimeDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="TimeDiff-3994"><a href="#TimeDiff-3994"><span class="linenos">3994</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="TimeDiff.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimeDiff.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimeDiff.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimeDiff.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimeDiff.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimeDiff.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeDiff.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeDiff.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimeDiff.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeDiff.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeDiff.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimeDiff.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeDiff.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeDiff.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeDiff.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimeDiff.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimeDiff.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimeDiff.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimeDiff.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimeDiff.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimeDiff.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimeDiff.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimeDiff.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimeDiff.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeDiff.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeDiff.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeDiff.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeDiff.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeDiff.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimeDiff.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeDiff.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeDiff.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimeDiff.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimeDiff.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimeDiff.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimeDiff.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimeDiff.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimeDiff.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimeDiff.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimeDiff.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimeDiff.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimeDiff.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimeDiff.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimeDiff.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeDiff.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeDiff.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimeDiff.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeDiff.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeDiff.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimeDiff.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimeDiff.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimeDiff.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimeDiff.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimeDiff.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimeTrunc">
<input id="TimeTrunc-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimeTrunc</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="TimeTrunc-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimeTrunc"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimeTrunc-3997"><a href="#TimeTrunc-3997"><span class="linenos">3997</span></a><span class="k">class</span> <span class="nc">TimeTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="TimeTrunc-3998"><a href="#TimeTrunc-3998"><span class="linenos">3998</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="TimeTrunc.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimeTrunc.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimeTrunc.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimeTrunc.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimeTrunc.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimeTrunc.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeTrunc.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeTrunc.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimeTrunc.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeTrunc.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeTrunc.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimeTrunc.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeTrunc.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeTrunc.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeTrunc.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimeTrunc.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimeTrunc.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimeTrunc.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimeTrunc.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimeTrunc.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimeTrunc.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimeTrunc.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimeTrunc.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimeTrunc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeTrunc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeTrunc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeTrunc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeTrunc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeTrunc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimeTrunc.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeTrunc.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeTrunc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimeTrunc.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimeTrunc.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimeTrunc.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimeTrunc.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimeTrunc.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimeTrunc.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimeTrunc.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimeTrunc.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimeTrunc.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimeTrunc.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimeTrunc.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimeTrunc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeTrunc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeTrunc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimeTrunc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeTrunc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeTrunc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimeTrunc.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimeTrunc.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimeTrunc.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimeTrunc.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimeTrunc.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="DateFromParts">
<input id="DateFromParts-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DateFromParts</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="DateFromParts-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DateFromParts"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DateFromParts-4001"><a href="#DateFromParts-4001"><span class="linenos">4001</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="DateFromParts-4002"><a href="#DateFromParts-4002"><span class="linenos">4002</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;DATEFROMPARTS&quot;</span><span class="p">]</span>
</span><span id="DateFromParts-4003"><a href="#DateFromParts-4003"><span class="linenos">4003</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;year&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;month&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;day&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DateFromParts.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DateFromParts.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DateFromParts.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DateFromParts.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DateFromParts.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DateFromParts.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DateFromParts.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DateFromParts.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateFromParts.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateFromParts.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateFromParts.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateFromParts.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateFromParts.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DateFromParts.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateFromParts.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateFromParts.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DateFromParts.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DateFromParts.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DateFromParts.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DateFromParts.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DateFromParts.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DateFromParts.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DateFromParts.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DateFromParts.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DateFromParts.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DateFromParts.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DateFromParts.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DateFromParts.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateFromParts.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateFromParts.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DateFromParts.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateFromParts.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateFromParts.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DateFromParts.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DateFromParts.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DateFromParts.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DateFromParts.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DateFromParts.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DateFromParts.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DateFromParts.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DateFromParts.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DateFromParts.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DateFromParts.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateFromParts.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateFromParts.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DateFromParts.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateFromParts.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateFromParts.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DateFromParts.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateFromParts.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateFromParts.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateFromParts.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DateFromParts.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DateFromParts.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="DateStrToDate">
<input id="DateStrToDate-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DateStrToDate</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="DateStrToDate-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DateStrToDate"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DateStrToDate-4006"><a href="#DateStrToDate-4006"><span class="linenos">4006</span></a><span class="k">class</span> <span class="nc">DateStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="DateStrToDate-4007"><a href="#DateStrToDate-4007"><span class="linenos">4007</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DateStrToDate.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DateStrToDate.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DateStrToDate.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DateStrToDate.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DateStrToDate.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DateStrToDate.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DateStrToDate.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DateStrToDate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateStrToDate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateStrToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateStrToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateStrToDate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateStrToDate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DateStrToDate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateStrToDate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateStrToDate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DateStrToDate.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DateStrToDate.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DateStrToDate.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DateStrToDate.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DateStrToDate.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DateStrToDate.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DateStrToDate.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DateStrToDate.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DateStrToDate.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DateStrToDate.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DateStrToDate.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DateStrToDate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateStrToDate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateStrToDate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DateStrToDate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateStrToDate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateStrToDate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DateStrToDate.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DateStrToDate.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DateStrToDate.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DateStrToDate.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DateStrToDate.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DateStrToDate.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DateStrToDate.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DateStrToDate.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DateStrToDate.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DateStrToDate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateStrToDate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateStrToDate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DateStrToDate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateStrToDate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateStrToDate.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DateStrToDate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateStrToDate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateStrToDate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateStrToDate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DateStrToDate.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DateStrToDate.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="DateToDateStr">
<input id="DateToDateStr-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DateToDateStr</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="DateToDateStr-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DateToDateStr"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DateToDateStr-4010"><a href="#DateToDateStr-4010"><span class="linenos">4010</span></a><span class="k">class</span> <span class="nc">DateToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="DateToDateStr-4011"><a href="#DateToDateStr-4011"><span class="linenos">4011</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DateToDateStr.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DateToDateStr.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DateToDateStr.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DateToDateStr.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DateToDateStr.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DateToDateStr.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DateToDateStr.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DateToDateStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateToDateStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateToDateStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateToDateStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateToDateStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateToDateStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DateToDateStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateToDateStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateToDateStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DateToDateStr.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DateToDateStr.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DateToDateStr.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DateToDateStr.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DateToDateStr.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DateToDateStr.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DateToDateStr.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DateToDateStr.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DateToDateStr.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DateToDateStr.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DateToDateStr.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DateToDateStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateToDateStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateToDateStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DateToDateStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateToDateStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateToDateStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DateToDateStr.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DateToDateStr.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DateToDateStr.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DateToDateStr.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DateToDateStr.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DateToDateStr.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DateToDateStr.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DateToDateStr.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DateToDateStr.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DateToDateStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateToDateStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateToDateStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DateToDateStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateToDateStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateToDateStr.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DateToDateStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateToDateStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateToDateStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateToDateStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DateToDateStr.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DateToDateStr.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="DateToDi">
<input id="DateToDi-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DateToDi</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="DateToDi-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DateToDi"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DateToDi-4014"><a href="#DateToDi-4014"><span class="linenos">4014</span></a><span class="k">class</span> <span class="nc">DateToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="DateToDi-4015"><a href="#DateToDi-4015"><span class="linenos">4015</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DateToDi.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DateToDi.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DateToDi.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DateToDi.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DateToDi.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DateToDi.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DateToDi.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DateToDi.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DateToDi.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DateToDi.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DateToDi.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DateToDi.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DateToDi.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DateToDi.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DateToDi.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DateToDi.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DateToDi.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DateToDi.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DateToDi.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DateToDi.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DateToDi.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DateToDi.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DateToDi.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DateToDi.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DateToDi.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DateToDi.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DateToDi.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DateToDi.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DateToDi.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DateToDi.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DateToDi.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DateToDi.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DateToDi.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DateToDi.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DateToDi.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DateToDi.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DateToDi.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DateToDi.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DateToDi.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DateToDi.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DateToDi.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DateToDi.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DateToDi.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DateToDi.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DateToDi.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DateToDi.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DateToDi.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DateToDi.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DateToDi.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DateToDi.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DateToDi.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DateToDi.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DateToDi.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DateToDi.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Day">
<input id="Day-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Day</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Day-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Day"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Day-4018"><a href="#Day-4018"><span class="linenos">4018</span></a><span class="k">class</span> <span class="nc">Day</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Day-4019"><a href="#Day-4019"><span class="linenos">4019</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Day.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Day.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Day.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Day.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Day.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Day.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Day.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Day.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Day.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Day.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Day.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Day.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Day.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Day.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Day.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Day.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Day.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Day.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Day.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Day.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Day.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Day.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Day.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Day.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Day.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Day.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Day.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Day.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Day.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Day.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Day.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Day.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Day.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Day.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Day.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Day.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Day.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Day.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Day.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Day.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Day.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Day.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Day.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Day.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Day.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Day.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Day.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Day.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Day.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Day.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Day.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Day.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Day.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Day.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Decode">
<input id="Decode-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Decode</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Decode-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Decode"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Decode-4022"><a href="#Decode-4022"><span class="linenos">4022</span></a><span class="k">class</span> <span class="nc">Decode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Decode-4023"><a href="#Decode-4023"><span class="linenos">4023</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;replace&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Decode.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Decode.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Decode.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Decode.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Decode.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Decode.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Decode.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Decode.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Decode.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Decode.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Decode.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Decode.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Decode.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Decode.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Decode.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Decode.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Decode.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Decode.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Decode.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Decode.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Decode.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Decode.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Decode.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Decode.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Decode.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Decode.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Decode.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Decode.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Decode.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Decode.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Decode.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Decode.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Decode.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Decode.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Decode.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Decode.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Decode.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Decode.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Decode.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Decode.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Decode.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Decode.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Decode.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Decode.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Decode.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Decode.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Decode.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Decode.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Decode.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Decode.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Decode.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Decode.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Decode.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Decode.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="DiToDate">
<input id="DiToDate-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">DiToDate</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="DiToDate-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#DiToDate"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="DiToDate-4026"><a href="#DiToDate-4026"><span class="linenos">4026</span></a><span class="k">class</span> <span class="nc">DiToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="DiToDate-4027"><a href="#DiToDate-4027"><span class="linenos">4027</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="DiToDate.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="DiToDate.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="DiToDate.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="DiToDate.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="DiToDate.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="DiToDate.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="DiToDate.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="DiToDate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="DiToDate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="DiToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="DiToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="DiToDate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="DiToDate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="DiToDate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="DiToDate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="DiToDate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="DiToDate.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="DiToDate.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="DiToDate.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="DiToDate.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="DiToDate.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="DiToDate.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="DiToDate.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="DiToDate.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="DiToDate.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="DiToDate.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="DiToDate.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="DiToDate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="DiToDate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="DiToDate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="DiToDate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="DiToDate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="DiToDate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="DiToDate.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="DiToDate.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="DiToDate.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="DiToDate.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="DiToDate.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="DiToDate.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="DiToDate.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="DiToDate.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="DiToDate.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="DiToDate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="DiToDate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="DiToDate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="DiToDate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="DiToDate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="DiToDate.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="DiToDate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="DiToDate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="DiToDate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="DiToDate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="DiToDate.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="DiToDate.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Encode">
<input id="Encode-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Encode</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Encode-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Encode"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Encode-4030"><a href="#Encode-4030"><span class="linenos">4030</span></a><span class="k">class</span> <span class="nc">Encode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Encode-4031"><a href="#Encode-4031"><span class="linenos">4031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;charset&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Encode.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Encode.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Encode.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Encode.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Encode.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Encode.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Encode.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Encode.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Encode.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Encode.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Encode.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Encode.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Encode.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Encode.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Encode.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Encode.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Encode.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Encode.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Encode.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Encode.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Encode.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Encode.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Encode.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Encode.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Encode.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Encode.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Encode.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Encode.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Encode.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Encode.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Encode.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Encode.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Encode.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Encode.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Encode.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Encode.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Encode.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Encode.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Encode.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Encode.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Encode.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Encode.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Encode.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Encode.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Encode.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Encode.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Encode.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Encode.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Encode.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Encode.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Encode.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Encode.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Encode.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Encode.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Exp">
<input id="Exp-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Exp</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Exp-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Exp"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Exp-4034"><a href="#Exp-4034"><span class="linenos">4034</span></a><span class="k">class</span> <span class="nc">Exp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Exp-4035"><a href="#Exp-4035"><span class="linenos">4035</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Exp.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Exp.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Exp.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Exp.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Exp.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Exp.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Exp.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Exp.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Exp.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Exp.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Exp.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Exp.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Exp.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Exp.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Exp.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Exp.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Exp.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Exp.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Exp.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Exp.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Exp.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Exp.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Exp.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Exp.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Exp.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Exp.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Exp.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Exp.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Exp.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Exp.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Exp.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Exp.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Exp.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Exp.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Exp.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Exp.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Exp.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Exp.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Exp.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Exp.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Exp.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Exp.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Exp.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Exp.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Exp.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Exp.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Exp.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Exp.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Exp.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Exp.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Exp.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Exp.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Exp.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Exp.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Explode">
<input id="Explode-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Explode</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Explode-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Explode"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Explode-4038"><a href="#Explode-4038"><span class="linenos">4038</span></a><span class="k">class</span> <span class="nc">Explode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Explode-4039"><a href="#Explode-4039"><span class="linenos">4039</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Explode.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Explode.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Explode.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Explode.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Explode.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Explode.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Explode.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Explode.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Explode.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Explode.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Explode.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Explode.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Explode.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Explode.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Explode.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Explode.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Explode.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Explode.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Explode.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Explode.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Explode.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Explode.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Explode.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Explode.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Explode.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Explode.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Explode.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Explode.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Explode.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Explode.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Explode.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Explode.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Explode.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Explode.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Explode.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Explode.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Explode.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Explode.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Explode.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Explode.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Explode.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Explode.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Explode.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Explode.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Explode.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Explode.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Explode.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Explode.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Explode.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Explode.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Explode.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Explode.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Explode.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Explode.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Floor">
<input id="Floor-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Floor</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Floor-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Floor"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Floor-4042"><a href="#Floor-4042"><span class="linenos">4042</span></a><span class="k">class</span> <span class="nc">Floor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Floor-4043"><a href="#Floor-4043"><span class="linenos">4043</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Floor.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Floor.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Floor.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Floor.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Floor.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Floor.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Floor.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Floor.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Floor.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Floor.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Floor.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Floor.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Floor.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Floor.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Floor.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Floor.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Floor.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Floor.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Floor.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Floor.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Floor.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Floor.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Floor.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Floor.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Floor.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Floor.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Floor.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Floor.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Floor.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Floor.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Floor.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Floor.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Floor.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Floor.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Floor.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Floor.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Floor.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Floor.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Floor.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Floor.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Floor.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Floor.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Floor.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Floor.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Floor.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Floor.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Floor.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Floor.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Floor.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Floor.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Floor.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Floor.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Floor.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Floor.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="FromBase64">
<input id="FromBase64-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">FromBase64</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="FromBase64-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#FromBase64"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="FromBase64-4046"><a href="#FromBase64-4046"><span class="linenos">4046</span></a><span class="k">class</span> <span class="nc">FromBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="FromBase64-4047"><a href="#FromBase64-4047"><span class="linenos">4047</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="FromBase64.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="FromBase64.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="FromBase64.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="FromBase64.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="FromBase64.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="FromBase64.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="FromBase64.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="FromBase64.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="FromBase64.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="FromBase64.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="FromBase64.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="FromBase64.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="FromBase64.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="FromBase64.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="FromBase64.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="FromBase64.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="FromBase64.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="FromBase64.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="FromBase64.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="FromBase64.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="FromBase64.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="FromBase64.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="FromBase64.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="FromBase64.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="FromBase64.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="FromBase64.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="FromBase64.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="FromBase64.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="FromBase64.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="FromBase64.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="FromBase64.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="FromBase64.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="FromBase64.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="FromBase64.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="FromBase64.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="FromBase64.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="FromBase64.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="FromBase64.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="FromBase64.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="FromBase64.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="FromBase64.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="FromBase64.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="FromBase64.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="FromBase64.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="FromBase64.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="FromBase64.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="FromBase64.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="FromBase64.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="FromBase64.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="FromBase64.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="FromBase64.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="FromBase64.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="FromBase64.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="FromBase64.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ToBase64">
<input id="ToBase64-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ToBase64</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="ToBase64-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ToBase64"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ToBase64-4050"><a href="#ToBase64-4050"><span class="linenos">4050</span></a><span class="k">class</span> <span class="nc">ToBase64</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="ToBase64-4051"><a href="#ToBase64-4051"><span class="linenos">4051</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ToBase64.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ToBase64.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ToBase64.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ToBase64.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ToBase64.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ToBase64.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ToBase64.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ToBase64.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ToBase64.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ToBase64.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ToBase64.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ToBase64.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ToBase64.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ToBase64.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ToBase64.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ToBase64.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ToBase64.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ToBase64.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ToBase64.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ToBase64.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ToBase64.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ToBase64.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ToBase64.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ToBase64.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ToBase64.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ToBase64.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ToBase64.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ToBase64.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ToBase64.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ToBase64.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ToBase64.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ToBase64.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ToBase64.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ToBase64.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ToBase64.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ToBase64.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ToBase64.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ToBase64.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ToBase64.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ToBase64.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ToBase64.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ToBase64.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ToBase64.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ToBase64.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ToBase64.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ToBase64.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ToBase64.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ToBase64.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ToBase64.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ToBase64.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ToBase64.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ToBase64.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ToBase64.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ToBase64.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Greatest">
<input id="Greatest-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Greatest</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Greatest-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Greatest"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Greatest-4054"><a href="#Greatest-4054"><span class="linenos">4054</span></a><span class="k">class</span> <span class="nc">Greatest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Greatest-4055"><a href="#Greatest-4055"><span class="linenos">4055</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Greatest-4056"><a href="#Greatest-4056"><span class="linenos">4056</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Greatest.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Greatest.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Greatest.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Greatest.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Greatest.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Greatest.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Greatest.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Greatest.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Greatest.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Greatest.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Greatest.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Greatest.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Greatest.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Greatest.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Greatest.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Greatest.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Greatest.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Greatest.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Greatest.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Greatest.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Greatest.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Greatest.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Greatest.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Greatest.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Greatest.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Greatest.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Greatest.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Greatest.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Greatest.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Greatest.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Greatest.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Greatest.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Greatest.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Greatest.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Greatest.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Greatest.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Greatest.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Greatest.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Greatest.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Greatest.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Greatest.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Greatest.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Greatest.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Greatest.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Greatest.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Greatest.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Greatest.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Greatest.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Greatest.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Greatest.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Greatest.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Greatest.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Greatest.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Greatest.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="GroupConcat">
<input id="GroupConcat-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">GroupConcat</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="GroupConcat-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#GroupConcat"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="GroupConcat-4059"><a href="#GroupConcat-4059"><span class="linenos">4059</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="GroupConcat-4060"><a href="#GroupConcat-4060"><span class="linenos">4060</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;separator&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="GroupConcat.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="GroupConcat.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="GroupConcat.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="GroupConcat.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="GroupConcat.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="GroupConcat.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="GroupConcat.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="GroupConcat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="GroupConcat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="GroupConcat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="GroupConcat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="GroupConcat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="GroupConcat.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="GroupConcat.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="GroupConcat.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="GroupConcat.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="GroupConcat.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="GroupConcat.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="GroupConcat.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="GroupConcat.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="GroupConcat.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="GroupConcat.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="GroupConcat.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="GroupConcat.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="GroupConcat.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="GroupConcat.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="GroupConcat.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="GroupConcat.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="GroupConcat.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="GroupConcat.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="GroupConcat.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="GroupConcat.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="GroupConcat.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="GroupConcat.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="GroupConcat.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="GroupConcat.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="GroupConcat.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="GroupConcat.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="GroupConcat.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="GroupConcat.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="GroupConcat.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="GroupConcat.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="GroupConcat.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="GroupConcat.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="GroupConcat.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="GroupConcat.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="GroupConcat.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="GroupConcat.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="GroupConcat.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="GroupConcat.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="GroupConcat.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="GroupConcat.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="GroupConcat.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="GroupConcat.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Hex">
<input id="Hex-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Hex</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Hex-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Hex"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Hex-4063"><a href="#Hex-4063"><span class="linenos">4063</span></a><span class="k">class</span> <span class="nc">Hex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Hex-4064"><a href="#Hex-4064"><span class="linenos">4064</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Hex.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Hex.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Hex.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Hex.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Hex.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Hex.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Hex.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Hex.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Hex.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Hex.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Hex.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Hex.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Hex.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Hex.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Hex.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Hex.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Hex.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Hex.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Hex.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Hex.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Hex.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Hex.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Hex.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Hex.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Hex.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Hex.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Hex.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Hex.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Hex.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Hex.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Hex.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Hex.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Hex.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Hex.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Hex.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Hex.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Hex.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Hex.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Hex.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Hex.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Hex.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Hex.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Hex.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Hex.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Hex.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Hex.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Hex.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Hex.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Hex.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Hex.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Hex.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Hex.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Hex.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Hex.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="If">
<input id="If-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">If</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="If-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#If"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="If-4067"><a href="#If-4067"><span class="linenos">4067</span></a><span class="k">class</span> <span class="nc">If</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="If-4068"><a href="#If-4068"><span class="linenos">4068</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="If.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="If.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="If.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="If.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="If.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="If.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="If.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="If.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="If.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="If.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="If.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="If.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="If.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="If.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="If.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="If.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="If.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="If.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="If.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="If.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="If.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="If.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="If.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="If.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="If.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="If.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="If.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="If.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="If.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="If.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="If.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="If.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="If.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="If.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="If.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="If.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="If.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="If.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="If.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="If.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="If.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="If.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="If.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="If.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="If.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="If.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="If.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="If.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="If.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="If.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="If.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="If.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="If.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="If.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="IfNull">
<input id="IfNull-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">IfNull</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="IfNull-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#IfNull"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="IfNull-4071"><a href="#IfNull-4071"><span class="linenos">4071</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="IfNull-4072"><a href="#IfNull-4072"><span class="linenos">4072</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="IfNull-4073"><a href="#IfNull-4073"><span class="linenos">4073</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;IFNULL&quot;</span><span class="p">,</span> <span class="s2">&quot;NVL&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="IfNull.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="IfNull.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="IfNull.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="IfNull.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="IfNull.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="IfNull.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="IfNull.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="IfNull.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="IfNull.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="IfNull.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="IfNull.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="IfNull.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="IfNull.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="IfNull.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="IfNull.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="IfNull.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="IfNull.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="IfNull.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="IfNull.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="IfNull.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="IfNull.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="IfNull.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="IfNull.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="IfNull.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="IfNull.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="IfNull.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="IfNull.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="IfNull.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="IfNull.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="IfNull.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="IfNull.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="IfNull.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="IfNull.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="IfNull.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="IfNull.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="IfNull.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="IfNull.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="IfNull.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="IfNull.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="IfNull.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="IfNull.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="IfNull.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="IfNull.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="IfNull.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="IfNull.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="IfNull.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="IfNull.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="IfNull.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="IfNull.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="IfNull.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="IfNull.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="IfNull.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="IfNull.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="IfNull.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Initcap">
<input id="Initcap-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Initcap</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Initcap-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Initcap"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-4076"><a href="#Initcap-4076"><span class="linenos">4076</span></a><span class="k">class</span> <span class="nc">Initcap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Initcap-4077"><a href="#Initcap-4077"><span class="linenos">4077</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Initcap.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Initcap.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Initcap.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Initcap.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Initcap.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Initcap.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Initcap.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Initcap.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Initcap.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Initcap.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Initcap.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Initcap.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Initcap.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Initcap.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Initcap.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Initcap.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Initcap.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Initcap.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Initcap.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Initcap.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Initcap.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Initcap.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Initcap.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Initcap.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Initcap.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Initcap.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Initcap.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Initcap.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Initcap.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Initcap.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Initcap.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Initcap.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Initcap.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Initcap.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Initcap.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Initcap.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Initcap.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Initcap.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Initcap.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Initcap.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Initcap.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Initcap.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Initcap.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Initcap.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Initcap.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Initcap.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Initcap.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Initcap.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Initcap.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Initcap.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Initcap.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Initcap.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Initcap.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Initcap.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="JSONKeyValue">
<input id="JSONKeyValue-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">JSONKeyValue</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="JSONKeyValue-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#JSONKeyValue"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONKeyValue-4080"><a href="#JSONKeyValue-4080"><span class="linenos">4080</span></a><span class="k">class</span> <span class="nc">JSONKeyValue</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="JSONKeyValue-4081"><a href="#JSONKeyValue-4081"><span class="linenos">4081</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="JSONKeyValue.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="JSONKeyValue.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="JSONKeyValue.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="JSONKeyValue.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="JSONKeyValue.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="JSONKeyValue.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="JSONKeyValue.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="JSONKeyValue.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONKeyValue.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONKeyValue.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONKeyValue.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONKeyValue.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONKeyValue.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="JSONKeyValue.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONKeyValue.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONKeyValue.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="JSONKeyValue.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="JSONKeyValue.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="JSONKeyValue.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="JSONKeyValue.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="JSONKeyValue.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="JSONKeyValue.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="JSONKeyValue.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="JSONKeyValue.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="JSONKeyValue.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="JSONKeyValue.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="JSONKeyValue.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="JSONKeyValue.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONKeyValue.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONKeyValue.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="JSONKeyValue.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONKeyValue.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONKeyValue.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="JSONKeyValue.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="JSONKeyValue.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="JSONKeyValue.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="JSONKeyValue.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="JSONKeyValue.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="JSONObject">
<input id="JSONObject-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">JSONObject</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="JSONObject-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#JSONObject"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONObject-4084"><a href="#JSONObject-4084"><span class="linenos">4084</span></a><span class="k">class</span> <span class="nc">JSONObject</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="JSONObject-4085"><a href="#JSONObject-4085"><span class="linenos">4085</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="JSONObject-4086"><a href="#JSONObject-4086"><span class="linenos">4086</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="JSONObject-4087"><a href="#JSONObject-4087"><span class="linenos">4087</span></a> <span class="s2">&quot;null_handling&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="JSONObject-4088"><a href="#JSONObject-4088"><span class="linenos">4088</span></a> <span class="s2">&quot;unique_keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="JSONObject-4089"><a href="#JSONObject-4089"><span class="linenos">4089</span></a> <span class="s2">&quot;return_type&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="JSONObject-4090"><a href="#JSONObject-4090"><span class="linenos">4090</span></a> <span class="s2">&quot;format_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="JSONObject-4091"><a href="#JSONObject-4091"><span class="linenos">4091</span></a> <span class="s2">&quot;encoding&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="JSONObject-4092"><a href="#JSONObject-4092"><span class="linenos">4092</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="JSONObject.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="JSONObject.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="JSONObject.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="JSONObject.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="JSONObject.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="JSONObject.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="JSONObject.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="JSONObject.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONObject.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONObject.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONObject.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONObject.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONObject.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="JSONObject.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONObject.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONObject.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="JSONObject.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="JSONObject.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="JSONObject.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="JSONObject.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="JSONObject.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="JSONObject.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="JSONObject.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="JSONObject.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="JSONObject.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="JSONObject.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="JSONObject.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="JSONObject.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONObject.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONObject.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="JSONObject.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONObject.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONObject.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="JSONObject.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="JSONObject.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="JSONObject.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="JSONObject.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="JSONObject.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="JSONObject.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="JSONObject.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="JSONObject.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="JSONObject.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="JSONObject.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONObject.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONObject.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="JSONObject.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONObject.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONObject.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="JSONObject.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONObject.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONObject.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONObject.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="JSONObject.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="JSONObject.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="OpenJSONColumnDef">
<input id="OpenJSONColumnDef-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">OpenJSONColumnDef</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="OpenJSONColumnDef-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#OpenJSONColumnDef"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSONColumnDef-4095"><a href="#OpenJSONColumnDef-4095"><span class="linenos">4095</span></a><span class="k">class</span> <span class="nc">OpenJSONColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="OpenJSONColumnDef-4096"><a href="#OpenJSONColumnDef-4096"><span class="linenos">4096</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;as_json&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="OpenJSONColumnDef.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="OpenJSONColumnDef.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="OpenJSONColumnDef.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="OpenJSONColumnDef.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="OpenJSONColumnDef.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="OpenJSONColumnDef.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="OpenJSONColumnDef.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="OpenJSONColumnDef.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="OpenJSONColumnDef.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="OpenJSONColumnDef.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="OpenJSONColumnDef.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OpenJSONColumnDef.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="OpenJSONColumnDef.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="OpenJSONColumnDef.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="OpenJSONColumnDef.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="OpenJSONColumnDef.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="OpenJSONColumnDef.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="OpenJSONColumnDef.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="OpenJSONColumnDef.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="OpenJSONColumnDef.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="OpenJSONColumnDef.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="OpenJSONColumnDef.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="OpenJSONColumnDef.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="OpenJSONColumnDef.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="OpenJSONColumnDef.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="OpenJSONColumnDef.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="OpenJSONColumnDef.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="OpenJSONColumnDef.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="OpenJSONColumnDef.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="OpenJSONColumnDef.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="OpenJSONColumnDef.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="OpenJSONColumnDef.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="OpenJSONColumnDef.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="OpenJSONColumnDef.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="OpenJSONColumnDef.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="OpenJSONColumnDef.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="OpenJSONColumnDef.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="OpenJSONColumnDef.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="OpenJSON">
<input id="OpenJSON-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">OpenJSON</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="OpenJSON-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#OpenJSON"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="OpenJSON-4099"><a href="#OpenJSON-4099"><span class="linenos">4099</span></a><span class="k">class</span> <span class="nc">OpenJSON</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="OpenJSON-4100"><a href="#OpenJSON-4100"><span class="linenos">4100</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;path&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="OpenJSON.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="OpenJSON.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="OpenJSON.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="OpenJSON.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="OpenJSON.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="OpenJSON.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="OpenJSON.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="OpenJSON.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="OpenJSON.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="OpenJSON.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="OpenJSON.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="OpenJSON.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="OpenJSON.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="OpenJSON.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="OpenJSON.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="OpenJSON.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="OpenJSON.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="OpenJSON.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="OpenJSON.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="OpenJSON.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="OpenJSON.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="OpenJSON.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="OpenJSON.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="OpenJSON.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="OpenJSON.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="OpenJSON.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="OpenJSON.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="OpenJSON.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="OpenJSON.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="OpenJSON.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="OpenJSON.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="OpenJSON.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="OpenJSON.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="OpenJSON.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="OpenJSON.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="OpenJSON.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="OpenJSON.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="OpenJSON.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="OpenJSON.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="OpenJSON.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="OpenJSON.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="OpenJSON.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="OpenJSON.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="OpenJSON.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="OpenJSON.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="OpenJSON.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="OpenJSON.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="OpenJSON.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="OpenJSON.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="OpenJSON.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="OpenJSON.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="OpenJSON.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="OpenJSON.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="OpenJSON.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="JSONBContains">
<input id="JSONBContains-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">JSONBContains</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>):
<label class="view-source-button" for="JSONBContains-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#JSONBContains"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONBContains-4103"><a href="#JSONBContains-4103"><span class="linenos">4103</span></a><span class="k">class</span> <span class="nc">JSONBContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span>
</span><span id="JSONBContains-4104"><a href="#JSONBContains-4104"><span class="linenos">4104</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_CONTAINS&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="JSONBContains.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="JSONBContains.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="JSONBContains.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="JSONBContains.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="JSONBContains.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="JSONBContains.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="JSONBContains.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="JSONBContains.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONBContains.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONBContains.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONBContains.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONBContains.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONBContains.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="JSONBContains.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONBContains.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONBContains.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="JSONBContains.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="JSONBContains.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="JSONBContains.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="JSONBContains.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="JSONBContains.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="JSONBContains.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="JSONBContains.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="JSONBContains.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="JSONBContains.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="JSONBContains.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="JSONBContains.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="JSONBContains.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONBContains.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONBContains.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="JSONBContains.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONBContains.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONBContains.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="JSONBContains.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="JSONBContains.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="JSONBContains.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="JSONBContains.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="JSONBContains.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="JSONBContains.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONBContains.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONBContains.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="JSONBContains.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONBContains.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONBContains.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="JSONBContains.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONBContains.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONBContains.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONBContains.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="JSONBContains.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="JSONBContains.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="JSONExtract">
<input id="JSONExtract-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">JSONExtract</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="JSONExtract-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#JSONExtract"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-4107"><a href="#JSONExtract-4107"><span class="linenos">4107</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
</span><span id="JSONExtract-4108"><a href="#JSONExtract-4108"><span class="linenos">4108</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="JSONExtract.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="JSONExtract.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="JSONExtract.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="JSONExtract.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="JSONExtract.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="JSONExtract.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="JSONExtract.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="JSONExtract.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONExtract.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONExtract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONExtract.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONExtract.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="JSONExtract.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONExtract.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONExtract.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="JSONExtract.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="JSONExtract.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="JSONExtract.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="JSONExtract.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="JSONExtract.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="JSONExtract.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="JSONExtract.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="JSONExtract.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="JSONExtract.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="JSONExtract.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="JSONExtract.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="JSONExtract.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONExtract.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONExtract.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="JSONExtract.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONExtract.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONExtract.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="JSONExtract.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="JSONExtract.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="JSONExtract.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="JSONExtract.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="JSONExtract.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="JSONExtract.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="JSONExtract.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="JSONExtract.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="JSONExtract.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="JSONExtract.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONExtract.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONExtract.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="JSONExtract.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONExtract.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONExtract.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="JSONExtract.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONExtract.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONExtract.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONExtract.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="JSONExtract.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="JSONExtract.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="JSONExtractScalar">
<input id="JSONExtractScalar-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">JSONExtractScalar</span><wbr>(<span class="base"><a href="#JSONExtract">JSONExtract</a></span>):
<label class="view-source-button" for="JSONExtractScalar-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#JSONExtractScalar"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-4111"><a href="#JSONExtractScalar-4111"><span class="linenos">4111</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
</span><span id="JSONExtractScalar-4112"><a href="#JSONExtractScalar-4112"><span class="linenos">4112</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="JSONExtractScalar.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="JSONExtractScalar.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="JSONExtractScalar.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="JSONExtractScalar.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="JSONExtractScalar.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="JSONExtractScalar.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="JSONExtractScalar.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="JSONExtractScalar.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONExtractScalar.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONExtractScalar.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONExtractScalar.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONExtractScalar.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONExtractScalar.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="JSONExtractScalar.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONExtractScalar.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONExtractScalar.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="JSONExtractScalar.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="JSONExtractScalar.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="JSONExtractScalar.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="JSONExtractScalar.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="JSONExtractScalar.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="JSONExtractScalar.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="JSONExtractScalar.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="JSONExtractScalar.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="JSONExtractScalar.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="JSONExtractScalar.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="JSONExtractScalar.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="JSONExtractScalar.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONExtractScalar.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONExtractScalar.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="JSONExtractScalar.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONExtractScalar.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONExtractScalar.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="JSONExtractScalar.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="JSONExtractScalar.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="JSONExtractScalar.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="JSONExtractScalar.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="JSONExtractScalar.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="JSONExtractScalar.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="JSONExtractScalar.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="JSONExtractScalar.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="JSONExtractScalar.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="JSONExtractScalar.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONExtractScalar.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONExtractScalar.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="JSONExtractScalar.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONExtractScalar.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONExtractScalar.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="JSONExtractScalar.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONExtractScalar.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONExtractScalar.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONExtractScalar.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="JSONExtractScalar.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="JSONExtractScalar.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="JSONBExtract">
<input id="JSONBExtract-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">JSONBExtract</span><wbr>(<span class="base"><a href="#JSONExtract">JSONExtract</a></span>):
<label class="view-source-button" for="JSONBExtract-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#JSONBExtract"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtract-4115"><a href="#JSONBExtract-4115"><span class="linenos">4115</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
</span><span id="JSONBExtract-4116"><a href="#JSONBExtract-4116"><span class="linenos">4116</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="JSONBExtract.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="JSONBExtract.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="JSONBExtract.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="JSONBExtract.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="JSONBExtract.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="JSONBExtract.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="JSONBExtract.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="JSONBExtract.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONBExtract.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONBExtract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONBExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONBExtract.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONBExtract.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="JSONBExtract.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONBExtract.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONBExtract.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="JSONBExtract.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="JSONBExtract.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="JSONBExtract.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="JSONBExtract.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="JSONBExtract.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="JSONBExtract.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="JSONBExtract.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="JSONBExtract.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="JSONBExtract.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="JSONBExtract.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="JSONBExtract.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="JSONBExtract.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONBExtract.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONBExtract.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="JSONBExtract.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONBExtract.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONBExtract.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="JSONBExtract.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="JSONBExtract.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="JSONBExtract.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="JSONBExtract.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="JSONBExtract.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="JSONBExtract.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="JSONBExtract.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="JSONBExtract.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="JSONBExtract.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="JSONBExtract.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONBExtract.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONBExtract.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="JSONBExtract.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONBExtract.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONBExtract.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="JSONBExtract.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONBExtract.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONBExtract.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONBExtract.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="JSONBExtract.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="JSONBExtract.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="JSONBExtractScalar">
<input id="JSONBExtractScalar-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">JSONBExtractScalar</span><wbr>(<span class="base"><a href="#JSONExtract">JSONExtract</a></span>):
<label class="view-source-button" for="JSONBExtractScalar-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#JSONBExtractScalar"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtractScalar-4119"><a href="#JSONBExtractScalar-4119"><span class="linenos">4119</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span>
</span><span id="JSONBExtractScalar-4120"><a href="#JSONBExtractScalar-4120"><span class="linenos">4120</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSONB_EXTRACT_SCALAR&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="JSONBExtractScalar.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="JSONBExtractScalar.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="JSONBExtractScalar.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="JSONBExtractScalar.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="JSONBExtractScalar.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="JSONBExtractScalar.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="JSONBExtractScalar.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="JSONBExtractScalar.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONBExtractScalar.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONBExtractScalar.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONBExtractScalar.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONBExtractScalar.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONBExtractScalar.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="JSONBExtractScalar.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONBExtractScalar.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONBExtractScalar.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="JSONBExtractScalar.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="JSONBExtractScalar.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="JSONBExtractScalar.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="JSONBExtractScalar.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="JSONBExtractScalar.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="JSONBExtractScalar.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="JSONBExtractScalar.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="JSONBExtractScalar.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="JSONBExtractScalar.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="JSONBExtractScalar.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="JSONBExtractScalar.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="JSONBExtractScalar.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONBExtractScalar.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONBExtractScalar.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="JSONBExtractScalar.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONBExtractScalar.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONBExtractScalar.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="JSONBExtractScalar.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="JSONBExtractScalar.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="JSONBExtractScalar.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="JSONBExtractScalar.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="JSONBExtractScalar.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="JSONBExtractScalar.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="JSONBExtractScalar.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="JSONBExtractScalar.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="JSONBExtractScalar.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="JSONBExtractScalar.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONBExtractScalar.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONBExtractScalar.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="JSONBExtractScalar.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONBExtractScalar.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONBExtractScalar.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="JSONBExtractScalar.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONBExtractScalar.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONBExtractScalar.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONBExtractScalar.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="JSONBExtractScalar.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="JSONBExtractScalar.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="JSONFormat">
<input id="JSONFormat-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">JSONFormat</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="JSONFormat-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#JSONFormat"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="JSONFormat-4123"><a href="#JSONFormat-4123"><span class="linenos">4123</span></a><span class="k">class</span> <span class="nc">JSONFormat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="JSONFormat-4124"><a href="#JSONFormat-4124"><span class="linenos">4124</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;options&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="JSONFormat-4125"><a href="#JSONFormat-4125"><span class="linenos">4125</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;JSON_FORMAT&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="JSONFormat.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="JSONFormat.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="JSONFormat.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="JSONFormat.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="JSONFormat.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="JSONFormat.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="JSONFormat.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="JSONFormat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="JSONFormat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="JSONFormat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="JSONFormat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="JSONFormat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="JSONFormat.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="JSONFormat.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="JSONFormat.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="JSONFormat.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="JSONFormat.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="JSONFormat.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="JSONFormat.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="JSONFormat.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="JSONFormat.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="JSONFormat.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="JSONFormat.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="JSONFormat.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="JSONFormat.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="JSONFormat.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="JSONFormat.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="JSONFormat.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="JSONFormat.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="JSONFormat.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="JSONFormat.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="JSONFormat.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="JSONFormat.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="JSONFormat.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="JSONFormat.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="JSONFormat.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="JSONFormat.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="JSONFormat.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="JSONFormat.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="JSONFormat.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="JSONFormat.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="JSONFormat.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="JSONFormat.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="JSONFormat.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="JSONFormat.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="JSONFormat.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="JSONFormat.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="JSONFormat.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="JSONFormat.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="JSONFormat.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="JSONFormat.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="JSONFormat.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="JSONFormat.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="JSONFormat.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Least">
<input id="Least-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Least</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Least-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Least"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Least-4128"><a href="#Least-4128"><span class="linenos">4128</span></a><span class="k">class</span> <span class="nc">Least</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Least-4129"><a href="#Least-4129"><span class="linenos">4129</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Least-4130"><a href="#Least-4130"><span class="linenos">4130</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Least.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Least.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Least.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Least.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Least.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Least.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Least.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Least.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Least.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Least.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Least.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Least.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Least.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Least.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Least.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Least.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Least.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Least.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Least.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Least.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Least.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Least.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Least.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Least.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Least.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Least.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Least.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Least.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Least.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Least.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Least.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Least.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Least.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Least.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Least.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Least.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Least.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Least.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Least.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Least.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Least.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Least.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Least.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Least.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Least.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Least.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Least.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Least.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Least.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Least.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Least.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Least.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Least.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Least.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Length">
<input id="Length-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Length</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Length-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Length"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Length-4133"><a href="#Length-4133"><span class="linenos">4133</span></a><span class="k">class</span> <span class="nc">Length</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Length-4134"><a href="#Length-4134"><span class="linenos">4134</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Length.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Length.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Length.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Length.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Length.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Length.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Length.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Length.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Length.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Length.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Length.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Length.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Length.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Length.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Length.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Length.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Length.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Length.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Length.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Length.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Length.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Length.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Length.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Length.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Length.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Length.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Length.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Length.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Length.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Length.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Length.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Length.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Length.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Length.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Length.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Length.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Length.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Length.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Length.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Length.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Length.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Length.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Length.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Length.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Length.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Length.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Length.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Length.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Length.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Length.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Length.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Length.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Length.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Length.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Levenshtein">
<input id="Levenshtein-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Levenshtein</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Levenshtein-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Levenshtein"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-4137"><a href="#Levenshtein-4137"><span class="linenos">4137</span></a><span class="k">class</span> <span class="nc">Levenshtein</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Levenshtein-4138"><a href="#Levenshtein-4138"><span class="linenos">4138</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Levenshtein-4139"><a href="#Levenshtein-4139"><span class="linenos">4139</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Levenshtein-4140"><a href="#Levenshtein-4140"><span class="linenos">4140</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Levenshtein-4141"><a href="#Levenshtein-4141"><span class="linenos">4141</span></a> <span class="s2">&quot;ins_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Levenshtein-4142"><a href="#Levenshtein-4142"><span class="linenos">4142</span></a> <span class="s2">&quot;del_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Levenshtein-4143"><a href="#Levenshtein-4143"><span class="linenos">4143</span></a> <span class="s2">&quot;sub_cost&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Levenshtein-4144"><a href="#Levenshtein-4144"><span class="linenos">4144</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Levenshtein.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Levenshtein.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Levenshtein.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Levenshtein.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Levenshtein.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Levenshtein.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Levenshtein.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Levenshtein.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Levenshtein.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Levenshtein.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Levenshtein.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Levenshtein.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Levenshtein.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Levenshtein.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Levenshtein.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Levenshtein.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Levenshtein.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Levenshtein.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Levenshtein.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Levenshtein.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Levenshtein.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Levenshtein.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Levenshtein.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Levenshtein.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Levenshtein.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Levenshtein.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Levenshtein.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Levenshtein.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Levenshtein.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Levenshtein.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Levenshtein.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Levenshtein.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Levenshtein.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Levenshtein.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Levenshtein.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Levenshtein.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Levenshtein.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Levenshtein.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Levenshtein.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Levenshtein.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Levenshtein.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Levenshtein.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Levenshtein.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Levenshtein.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Levenshtein.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Levenshtein.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Levenshtein.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Levenshtein.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Levenshtein.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Levenshtein.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Levenshtein.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Levenshtein.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Levenshtein.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Levenshtein.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Ln">
<input id="Ln-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Ln</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Ln-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Ln"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Ln-4147"><a href="#Ln-4147"><span class="linenos">4147</span></a><span class="k">class</span> <span class="nc">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Ln-4148"><a href="#Ln-4148"><span class="linenos">4148</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Ln.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Ln.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Ln.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Ln.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Ln.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Ln.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Ln.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Ln.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Ln.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Ln.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Ln.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Ln.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Ln.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Ln.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Ln.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Ln.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Ln.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Ln.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Ln.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Ln.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Ln.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Ln.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Ln.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Ln.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Ln.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Ln.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Ln.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Ln.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Ln.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Ln.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Ln.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Ln.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Ln.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Ln.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Ln.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Ln.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Ln.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Ln.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Ln.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Ln.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Ln.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Ln.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Ln.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Ln.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Ln.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Ln.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Ln.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Ln.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Ln.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Ln.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Ln.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Ln.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Ln.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Ln.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Log">
<input id="Log-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Log</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Log-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Log"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Log-4151"><a href="#Log-4151"><span class="linenos">4151</span></a><span class="k">class</span> <span class="nc">Log</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Log-4152"><a href="#Log-4152"><span class="linenos">4152</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Log.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Log.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Log.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Log.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Log.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Log.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Log.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Log.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Log.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Log.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Log.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Log.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Log.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Log.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Log.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Log.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Log.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Log.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Log.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Log.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Log.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Log.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Log.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Log.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Log.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Log.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Log.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Log.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Log.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Log.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Log.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Log.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Log.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Log.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Log.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Log.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Log.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Log.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Log.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Log.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Log.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Log.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Log.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Log.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Log.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Log.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Log.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Log.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Log.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Log.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Log.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Log.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Log.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Log.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Log2">
<input id="Log2-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Log2</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Log2-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Log2"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Log2-4155"><a href="#Log2-4155"><span class="linenos">4155</span></a><span class="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Log2-4156"><a href="#Log2-4156"><span class="linenos">4156</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Log2.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Log2.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Log2.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Log2.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Log2.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Log2.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Log2.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Log2.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Log2.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Log2.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Log2.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Log2.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Log2.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Log2.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Log2.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Log2.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Log2.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Log2.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Log2.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Log2.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Log2.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Log2.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Log2.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Log2.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Log2.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Log2.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Log2.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Log2.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Log2.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Log2.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Log2.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Log2.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Log2.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Log2.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Log2.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Log2.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Log2.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Log2.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Log2.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Log2.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Log2.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Log2.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Log2.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Log2.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Log2.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Log2.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Log2.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Log2.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Log2.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Log2.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Log2.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Log2.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Log2.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Log2.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Log10">
<input id="Log10-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Log10</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Log10-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Log10"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Log10-4159"><a href="#Log10-4159"><span class="linenos">4159</span></a><span class="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Log10-4160"><a href="#Log10-4160"><span class="linenos">4160</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Log10.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Log10.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Log10.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Log10.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Log10.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Log10.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Log10.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Log10.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Log10.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Log10.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Log10.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Log10.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Log10.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Log10.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Log10.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Log10.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Log10.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Log10.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Log10.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Log10.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Log10.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Log10.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Log10.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Log10.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Log10.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Log10.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Log10.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Log10.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Log10.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Log10.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Log10.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Log10.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Log10.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Log10.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Log10.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Log10.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Log10.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Log10.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Log10.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Log10.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Log10.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Log10.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Log10.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Log10.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Log10.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Log10.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Log10.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Log10.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Log10.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Log10.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Log10.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Log10.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Log10.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Log10.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="LogicalOr">
<input id="LogicalOr-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">LogicalOr</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="LogicalOr-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#LogicalOr"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="LogicalOr-4163"><a href="#LogicalOr-4163"><span class="linenos">4163</span></a><span class="k">class</span> <span class="nc">LogicalOr</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="LogicalOr-4164"><a href="#LogicalOr-4164"><span class="linenos">4164</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_OR&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLOR_AGG&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="LogicalOr.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="LogicalOr.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="LogicalOr.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="LogicalOr.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="LogicalOr.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="LogicalOr.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="LogicalOr.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="LogicalOr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LogicalOr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LogicalOr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LogicalOr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LogicalOr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LogicalOr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="LogicalOr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LogicalOr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LogicalOr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="LogicalOr.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="LogicalOr.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="LogicalOr.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="LogicalOr.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="LogicalOr.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="LogicalOr.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="LogicalOr.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="LogicalOr.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="LogicalOr.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="LogicalOr.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="LogicalOr.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="LogicalOr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LogicalOr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LogicalOr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="LogicalOr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LogicalOr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LogicalOr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="LogicalOr.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="LogicalOr.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="LogicalOr.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="LogicalOr.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="LogicalOr.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="LogicalOr.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="LogicalOr.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="LogicalOr.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="LogicalOr.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="LogicalOr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="LogicalOr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="LogicalOr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="LogicalOr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="LogicalOr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="LogicalOr.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="LogicalOr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="LogicalOr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="LogicalOr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="LogicalOr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="LogicalOr.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="LogicalOr.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="LogicalAnd">
<input id="LogicalAnd-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">LogicalAnd</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="LogicalAnd-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#LogicalAnd"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="LogicalAnd-4167"><a href="#LogicalAnd-4167"><span class="linenos">4167</span></a><span class="k">class</span> <span class="nc">LogicalAnd</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="LogicalAnd-4168"><a href="#LogicalAnd-4168"><span class="linenos">4168</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOGICAL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOL_AND&quot;</span><span class="p">,</span> <span class="s2">&quot;BOOLAND_AGG&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="LogicalAnd.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="LogicalAnd.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="LogicalAnd.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="LogicalAnd.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="LogicalAnd.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="LogicalAnd.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="LogicalAnd.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="LogicalAnd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="LogicalAnd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="LogicalAnd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="LogicalAnd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="LogicalAnd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="LogicalAnd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="LogicalAnd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="LogicalAnd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="LogicalAnd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="LogicalAnd.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="LogicalAnd.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="LogicalAnd.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="LogicalAnd.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="LogicalAnd.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="LogicalAnd.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="LogicalAnd.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="LogicalAnd.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="LogicalAnd.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="LogicalAnd.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="LogicalAnd.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="LogicalAnd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="LogicalAnd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="LogicalAnd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="LogicalAnd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="LogicalAnd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="LogicalAnd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="LogicalAnd.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="LogicalAnd.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="LogicalAnd.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="LogicalAnd.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="LogicalAnd.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="LogicalAnd.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="LogicalAnd.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="LogicalAnd.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="LogicalAnd.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="LogicalAnd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="LogicalAnd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="LogicalAnd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="LogicalAnd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="LogicalAnd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="LogicalAnd.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="LogicalAnd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="LogicalAnd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="LogicalAnd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="LogicalAnd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="LogicalAnd.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="LogicalAnd.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Lower">
<input id="Lower-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Lower</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Lower-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Lower"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Lower-4171"><a href="#Lower-4171"><span class="linenos">4171</span></a><span class="k">class</span> <span class="nc">Lower</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Lower-4172"><a href="#Lower-4172"><span class="linenos">4172</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;LOWER&quot;</span><span class="p">,</span> <span class="s2">&quot;LCASE&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Lower.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Lower.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Lower.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Lower.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Lower.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Lower.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Lower.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Lower.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Lower.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Lower.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Lower.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Lower.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Lower.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Lower.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Lower.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Lower.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Lower.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Lower.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Lower.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Lower.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Lower.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Lower.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Lower.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Lower.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Lower.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Lower.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Lower.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Lower.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Lower.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Lower.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Lower.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Lower.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Lower.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Lower.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Lower.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Lower.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Lower.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Lower.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Lower.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Lower.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Lower.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Lower.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Lower.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Lower.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Lower.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Lower.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Lower.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Lower.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Lower.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Lower.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Lower.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Lower.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Lower.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Lower.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Map">
<input id="Map-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Map</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Map-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Map"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Map-4175"><a href="#Map-4175"><span class="linenos">4175</span></a><span class="k">class</span> <span class="nc">Map</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Map-4176"><a href="#Map-4176"><span class="linenos">4176</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Map.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Map.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Map.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Map.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Map.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Map.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Map.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Map.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Map.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Map.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Map.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Map.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Map.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Map.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Map.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Map.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Map.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Map.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Map.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Map.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Map.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Map.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Map.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Map.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Map.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Map.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Map.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Map.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Map.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Map.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Map.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Map.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Map.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Map.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Map.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Map.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Map.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Map.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Map.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Map.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Map.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Map.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Map.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Map.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Map.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Map.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Map.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Map.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Map.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Map.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Map.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Map.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Map.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Map.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="StarMap">
<input id="StarMap-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">StarMap</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="StarMap-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#StarMap"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="StarMap-4179"><a href="#StarMap-4179"><span class="linenos">4179</span></a><span class="k">class</span> <span class="nc">StarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="StarMap-4180"><a href="#StarMap-4180"><span class="linenos">4180</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="StarMap.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="StarMap.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="StarMap.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="StarMap.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="StarMap.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="StarMap.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="StarMap.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="StarMap.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StarMap.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StarMap.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StarMap.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StarMap.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StarMap.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="StarMap.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StarMap.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StarMap.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="StarMap.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="StarMap.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="StarMap.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="StarMap.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="StarMap.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="StarMap.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="StarMap.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="StarMap.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="StarMap.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="StarMap.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="StarMap.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="StarMap.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StarMap.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StarMap.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="StarMap.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StarMap.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StarMap.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="StarMap.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="StarMap.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="StarMap.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="StarMap.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="StarMap.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="StarMap.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="StarMap.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="StarMap.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="StarMap.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="StarMap.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StarMap.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StarMap.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="StarMap.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StarMap.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StarMap.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="StarMap.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StarMap.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StarMap.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StarMap.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="StarMap.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="StarMap.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="VarMap">
<input id="VarMap-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">VarMap</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="VarMap-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#VarMap"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-4183"><a href="#VarMap-4183"><span class="linenos">4183</span></a><span class="k">class</span> <span class="nc">VarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="VarMap-4184"><a href="#VarMap-4184"><span class="linenos">4184</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;keys&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;values&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="VarMap-4185"><a href="#VarMap-4185"><span class="linenos">4185</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="VarMap.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="VarMap.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="VarMap.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="VarMap.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="VarMap.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="VarMap.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="VarMap.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="VarMap.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="VarMap.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="VarMap.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="VarMap.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="VarMap.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="VarMap.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="VarMap.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="VarMap.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="VarMap.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="VarMap.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="VarMap.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="VarMap.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="VarMap.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="VarMap.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="VarMap.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="VarMap.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="VarMap.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="VarMap.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="VarMap.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="VarMap.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="VarMap.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="VarMap.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="VarMap.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="VarMap.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="VarMap.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="VarMap.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="VarMap.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="VarMap.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="VarMap.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="VarMap.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="VarMap.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="VarMap.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="VarMap.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="VarMap.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="VarMap.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="VarMap.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="VarMap.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="VarMap.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="VarMap.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="VarMap.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="VarMap.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="VarMap.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="VarMap.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="VarMap.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="VarMap.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="VarMap.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="VarMap.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="MatchAgainst">
<input id="MatchAgainst-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">MatchAgainst</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="MatchAgainst-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#MatchAgainst"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MatchAgainst-4189"><a href="#MatchAgainst-4189"><span class="linenos">4189</span></a><span class="k">class</span> <span class="nc">MatchAgainst</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="MatchAgainst-4190"><a href="#MatchAgainst-4190"><span class="linenos">4190</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;modifier&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="MatchAgainst.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="MatchAgainst.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="MatchAgainst.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="MatchAgainst.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="MatchAgainst.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="MatchAgainst.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="MatchAgainst.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="MatchAgainst.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MatchAgainst.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MatchAgainst.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="MatchAgainst.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MatchAgainst.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MatchAgainst.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="MatchAgainst.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="MatchAgainst.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="MatchAgainst.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="MatchAgainst.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="MatchAgainst.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="MatchAgainst.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="MatchAgainst.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="MatchAgainst.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="MatchAgainst.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="MatchAgainst.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="MatchAgainst.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="MatchAgainst.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="MatchAgainst.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="MatchAgainst.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="MatchAgainst.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MatchAgainst.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MatchAgainst.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="MatchAgainst.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MatchAgainst.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MatchAgainst.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="MatchAgainst.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="MatchAgainst.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="MatchAgainst.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="MatchAgainst.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="MatchAgainst.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="MatchAgainst.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="MatchAgainst.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="MatchAgainst.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="MatchAgainst.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="MatchAgainst.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="MatchAgainst.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="MatchAgainst.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="MatchAgainst.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="MatchAgainst.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="MatchAgainst.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="MatchAgainst.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="MatchAgainst.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="MatchAgainst.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="MatchAgainst.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="MatchAgainst.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="MatchAgainst.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Max">
<input id="Max-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Max</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="Max-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Max"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Max-4193"><a href="#Max-4193"><span class="linenos">4193</span></a><span class="k">class</span> <span class="nc">Max</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="Max-4194"><a href="#Max-4194"><span class="linenos">4194</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Max-4195"><a href="#Max-4195"><span class="linenos">4195</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Max.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Max.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Max.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Max.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Max.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Max.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Max.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Max.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Max.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Max.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Max.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Max.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Max.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Max.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Max.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Max.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Max.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Max.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Max.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Max.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Max.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Max.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Max.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Max.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Max.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Max.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Max.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Max.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Max.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Max.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Max.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Max.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Max.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Max.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Max.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Max.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Max.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Max.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Max.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Max.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Max.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Max.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Max.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Max.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Max.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Max.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Max.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Max.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Max.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Max.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Max.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Max.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Max.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Max.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="MD5">
<input id="MD5-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">MD5</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="MD5-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#MD5"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="MD5-4198"><a href="#MD5-4198"><span class="linenos">4198</span></a><span class="k">class</span> <span class="nc">MD5</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="MD5-4199"><a href="#MD5-4199"><span class="linenos">4199</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;MD5&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="MD5.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="MD5.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="MD5.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="MD5.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="MD5.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="MD5.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="MD5.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="MD5.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="MD5.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="MD5.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="MD5.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="MD5.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="MD5.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="MD5.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="MD5.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="MD5.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="MD5.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="MD5.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="MD5.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="MD5.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="MD5.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="MD5.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="MD5.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="MD5.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="MD5.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="MD5.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="MD5.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="MD5.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="MD5.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="MD5.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="MD5.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="MD5.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="MD5.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="MD5.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="MD5.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="MD5.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="MD5.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="MD5.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="MD5.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="MD5.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="MD5.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="MD5.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="MD5.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="MD5.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="MD5.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="MD5.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="MD5.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="MD5.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="MD5.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="MD5.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="MD5.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="MD5.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="MD5.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="MD5.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Min">
<input id="Min-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Min</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="Min-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Min"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Min-4202"><a href="#Min-4202"><span class="linenos">4202</span></a><span class="k">class</span> <span class="nc">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="Min-4203"><a href="#Min-4203"><span class="linenos">4203</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="Min-4204"><a href="#Min-4204"><span class="linenos">4204</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Min.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Min.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Min.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Min.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Min.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Min.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Min.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Min.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Min.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Min.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Min.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Min.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Min.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Min.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Min.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Min.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Min.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Min.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Min.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Min.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Min.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Min.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Min.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Min.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Min.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Min.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Min.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Min.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Min.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Min.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Min.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Min.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Min.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Min.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Min.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Min.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Min.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Min.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Min.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Min.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Min.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Min.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Min.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Min.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Min.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Min.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Min.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Min.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Min.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Min.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Min.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Min.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Min.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Min.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Month">
<input id="Month-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Month</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Month-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Month"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Month-4207"><a href="#Month-4207"><span class="linenos">4207</span></a><span class="k">class</span> <span class="nc">Month</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Month-4208"><a href="#Month-4208"><span class="linenos">4208</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Month.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Month.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Month.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Month.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Month.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Month.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Month.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Month.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Month.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Month.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Month.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Month.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Month.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Month.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Month.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Month.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Month.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Month.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Month.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Month.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Month.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Month.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Month.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Month.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Month.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Month.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Month.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Month.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Month.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Month.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Month.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Month.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Month.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Month.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Month.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Month.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Month.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Month.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Month.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Month.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Month.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Month.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Month.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Month.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Month.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Month.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Month.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Month.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Month.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Month.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Month.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Month.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Month.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Month.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Nvl2">
<input id="Nvl2-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Nvl2</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Nvl2-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Nvl2"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Nvl2-4211"><a href="#Nvl2-4211"><span class="linenos">4211</span></a><span class="k">class</span> <span class="nc">Nvl2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Nvl2-4212"><a href="#Nvl2-4212"><span class="linenos">4212</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;true&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;false&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Nvl2.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Nvl2.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Nvl2.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Nvl2.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Nvl2.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Nvl2.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Nvl2.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Nvl2.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Nvl2.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Nvl2.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Nvl2.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Nvl2.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Nvl2.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Nvl2.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Nvl2.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Nvl2.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Nvl2.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Nvl2.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Nvl2.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Nvl2.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Nvl2.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Nvl2.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Nvl2.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Nvl2.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Nvl2.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Nvl2.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Nvl2.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Nvl2.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Nvl2.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Nvl2.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Nvl2.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Nvl2.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Nvl2.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Nvl2.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Nvl2.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Nvl2.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Nvl2.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Nvl2.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Nvl2.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Nvl2.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Nvl2.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Nvl2.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Nvl2.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Nvl2.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Nvl2.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Nvl2.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Nvl2.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Nvl2.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Nvl2.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Nvl2.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Nvl2.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Nvl2.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Nvl2.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Nvl2.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Posexplode">
<input id="Posexplode-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Posexplode</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Posexplode-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Posexplode"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-4215"><a href="#Posexplode-4215"><span class="linenos">4215</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Posexplode-4216"><a href="#Posexplode-4216"><span class="linenos">4216</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Posexplode.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Posexplode.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Posexplode.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Posexplode.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Posexplode.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Posexplode.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Posexplode.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Posexplode.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Posexplode.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Posexplode.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Posexplode.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Posexplode.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Posexplode.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Posexplode.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Posexplode.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Posexplode.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Posexplode.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Posexplode.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Posexplode.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Posexplode.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Posexplode.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Posexplode.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Posexplode.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Posexplode.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Posexplode.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Posexplode.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Posexplode.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Posexplode.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Posexplode.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Posexplode.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Posexplode.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Posexplode.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Posexplode.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Posexplode.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Posexplode.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Posexplode.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Posexplode.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Posexplode.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Posexplode.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Posexplode.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Posexplode.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Posexplode.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Posexplode.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Posexplode.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Posexplode.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Posexplode.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Posexplode.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Posexplode.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Posexplode.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Posexplode.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Posexplode.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Posexplode.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Posexplode.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Posexplode.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Pow">
<input id="Pow-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Pow</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>, <span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Pow-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Pow"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Pow-4219"><a href="#Pow-4219"><span class="linenos">4219</span></a><span class="k">class</span> <span class="nc">Pow</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span>
</span><span id="Pow-4220"><a href="#Pow-4220"><span class="linenos">4220</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;POWER&quot;</span><span class="p">,</span> <span class="s2">&quot;POW&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Pow.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Pow.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Pow.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Pow.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Pow.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Pow.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Pow.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Pow.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Pow.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Pow.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Pow.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Pow.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Pow.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Pow.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Pow.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Pow.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Pow.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Pow.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Pow.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Pow.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Pow.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Pow.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Pow.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Pow.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Pow.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Pow.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Pow.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Pow.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Pow.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Pow.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Pow.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Pow.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Pow.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Pow.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Pow.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Pow.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Pow.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Pow.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Pow.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Pow.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Pow.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Pow.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Pow.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Pow.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Pow.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Pow.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Pow.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Pow.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Pow.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Pow.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Pow.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Pow.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Pow.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Pow.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="PercentileCont">
<input id="PercentileCont-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">PercentileCont</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="PercentileCont-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#PercentileCont"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-4223"><a href="#PercentileCont-4223"><span class="linenos">4223</span></a><span class="k">class</span> <span class="nc">PercentileCont</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="PercentileCont-4224"><a href="#PercentileCont-4224"><span class="linenos">4224</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="PercentileCont.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="PercentileCont.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="PercentileCont.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="PercentileCont.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="PercentileCont.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="PercentileCont.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="PercentileCont.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="PercentileCont.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PercentileCont.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PercentileCont.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PercentileCont.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PercentileCont.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PercentileCont.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="PercentileCont.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PercentileCont.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PercentileCont.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="PercentileCont.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="PercentileCont.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="PercentileCont.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="PercentileCont.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="PercentileCont.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="PercentileCont.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="PercentileCont.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="PercentileCont.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="PercentileCont.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="PercentileCont.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="PercentileCont.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="PercentileCont.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PercentileCont.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PercentileCont.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="PercentileCont.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PercentileCont.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PercentileCont.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="PercentileCont.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="PercentileCont.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="PercentileCont.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="PercentileCont.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="PercentileCont.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="PercentileCont.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="PercentileCont.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="PercentileCont.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="PercentileCont.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="PercentileCont.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="PercentileCont.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="PercentileCont.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="PercentileCont.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="PercentileCont.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="PercentileCont.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="PercentileCont.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="PercentileCont.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="PercentileCont.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="PercentileCont.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="PercentileCont.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="PercentileCont.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="PercentileDisc">
<input id="PercentileDisc-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">PercentileDisc</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="PercentileDisc-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#PercentileDisc"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-4227"><a href="#PercentileDisc-4227"><span class="linenos">4227</span></a><span class="k">class</span> <span class="nc">PercentileDisc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="PercentileDisc-4228"><a href="#PercentileDisc-4228"><span class="linenos">4228</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="PercentileDisc.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="PercentileDisc.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="PercentileDisc.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="PercentileDisc.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="PercentileDisc.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="PercentileDisc.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="PercentileDisc.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="PercentileDisc.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="PercentileDisc.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="PercentileDisc.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="PercentileDisc.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="PercentileDisc.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="PercentileDisc.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="PercentileDisc.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="PercentileDisc.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="PercentileDisc.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="PercentileDisc.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="PercentileDisc.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="PercentileDisc.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="PercentileDisc.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="PercentileDisc.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="PercentileDisc.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="PercentileDisc.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="PercentileDisc.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="PercentileDisc.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="PercentileDisc.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="PercentileDisc.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="PercentileDisc.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="PercentileDisc.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="PercentileDisc.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="PercentileDisc.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="PercentileDisc.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="PercentileDisc.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="PercentileDisc.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="PercentileDisc.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="PercentileDisc.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="PercentileDisc.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="PercentileDisc.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="PercentileDisc.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="PercentileDisc.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="PercentileDisc.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="PercentileDisc.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="PercentileDisc.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="PercentileDisc.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="PercentileDisc.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="PercentileDisc.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="PercentileDisc.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="PercentileDisc.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="PercentileDisc.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="PercentileDisc.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="PercentileDisc.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="PercentileDisc.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="PercentileDisc.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="PercentileDisc.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Quantile">
<input id="Quantile-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Quantile</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="Quantile-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Quantile"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Quantile-4231"><a href="#Quantile-4231"><span class="linenos">4231</span></a><span class="k">class</span> <span class="nc">Quantile</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="Quantile-4232"><a href="#Quantile-4232"><span class="linenos">4232</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Quantile.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Quantile.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Quantile.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Quantile.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Quantile.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Quantile.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Quantile.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Quantile.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Quantile.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Quantile.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Quantile.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Quantile.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Quantile.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Quantile.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Quantile.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Quantile.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Quantile.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Quantile.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Quantile.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Quantile.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Quantile.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Quantile.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Quantile.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Quantile.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Quantile.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Quantile.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Quantile.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Quantile.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Quantile.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Quantile.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Quantile.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Quantile.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Quantile.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Quantile.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Quantile.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Quantile.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Quantile.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Quantile.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Quantile.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Quantile.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Quantile.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Quantile.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Quantile.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Quantile.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Quantile.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Quantile.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Quantile.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Quantile.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Quantile.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Quantile.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Quantile.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Quantile.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Quantile.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Quantile.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ApproxQuantile">
<input id="ApproxQuantile-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ApproxQuantile</span><wbr>(<span class="base"><a href="#Quantile">Quantile</a></span>):
<label class="view-source-button" for="ApproxQuantile-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ApproxQuantile"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ApproxQuantile-4235"><a href="#ApproxQuantile-4235"><span class="linenos">4235</span></a><span class="k">class</span> <span class="nc">ApproxQuantile</span><span class="p">(</span><span class="n">Quantile</span><span class="p">):</span>
</span><span id="ApproxQuantile-4236"><a href="#ApproxQuantile-4236"><span class="linenos">4236</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;quantile&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;accuracy&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ApproxQuantile.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ApproxQuantile.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ApproxQuantile.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ApproxQuantile.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ApproxQuantile.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ApproxQuantile.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ApproxQuantile.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ApproxQuantile.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ApproxQuantile.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ApproxQuantile.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ApproxQuantile.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ApproxQuantile.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ApproxQuantile.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ApproxQuantile.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ApproxQuantile.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ApproxQuantile.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ApproxQuantile.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ApproxQuantile.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ApproxQuantile.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ApproxQuantile.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ApproxQuantile.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ApproxQuantile.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ApproxQuantile.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ApproxQuantile.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ApproxQuantile.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ApproxQuantile.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ApproxQuantile.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ApproxQuantile.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ApproxQuantile.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ApproxQuantile.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ApproxQuantile.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ApproxQuantile.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ApproxQuantile.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ApproxQuantile.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ApproxQuantile.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ApproxQuantile.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ApproxQuantile.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ApproxQuantile.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ApproxQuantile.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ApproxQuantile.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ApproxQuantile.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ApproxQuantile.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ApproxQuantile.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ApproxQuantile.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ApproxQuantile.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ApproxQuantile.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ApproxQuantile.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ApproxQuantile.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ApproxQuantile.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ApproxQuantile.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ApproxQuantile.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ApproxQuantile.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ApproxQuantile.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ApproxQuantile.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="RangeN">
<input id="RangeN-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">RangeN</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="RangeN-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#RangeN"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="RangeN-4239"><a href="#RangeN-4239"><span class="linenos">4239</span></a><span class="k">class</span> <span class="nc">RangeN</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="RangeN-4240"><a href="#RangeN-4240"><span class="linenos">4240</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;each&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="RangeN.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="RangeN.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="RangeN.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="RangeN.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="RangeN.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="RangeN.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="RangeN.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="RangeN.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RangeN.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RangeN.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RangeN.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RangeN.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RangeN.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="RangeN.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RangeN.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RangeN.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="RangeN.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="RangeN.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="RangeN.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="RangeN.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="RangeN.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="RangeN.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="RangeN.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="RangeN.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="RangeN.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="RangeN.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="RangeN.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="RangeN.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RangeN.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RangeN.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="RangeN.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RangeN.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RangeN.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="RangeN.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="RangeN.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="RangeN.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="RangeN.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="RangeN.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="RangeN.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="RangeN.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="RangeN.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="RangeN.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="RangeN.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="RangeN.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="RangeN.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="RangeN.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="RangeN.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="RangeN.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="RangeN.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="RangeN.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="RangeN.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="RangeN.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="RangeN.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="RangeN.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="ReadCSV">
<input id="ReadCSV-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">ReadCSV</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="ReadCSV-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#ReadCSV"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="ReadCSV-4243"><a href="#ReadCSV-4243"><span class="linenos">4243</span></a><span class="k">class</span> <span class="nc">ReadCSV</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="ReadCSV-4244"><a href="#ReadCSV-4244"><span class="linenos">4244</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;READ_CSV&quot;</span><span class="p">]</span>
</span><span id="ReadCSV-4245"><a href="#ReadCSV-4245"><span class="linenos">4245</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="ReadCSV-4246"><a href="#ReadCSV-4246"><span class="linenos">4246</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="ReadCSV.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="ReadCSV.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="ReadCSV.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="ReadCSV.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="ReadCSV.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="ReadCSV.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="ReadCSV.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="ReadCSV.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="ReadCSV.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="ReadCSV.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="ReadCSV.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="ReadCSV.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="ReadCSV.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="ReadCSV.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="ReadCSV.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="ReadCSV.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="ReadCSV.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="ReadCSV.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="ReadCSV.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="ReadCSV.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="ReadCSV.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="ReadCSV.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="ReadCSV.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="ReadCSV.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="ReadCSV.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="ReadCSV.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="ReadCSV.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="ReadCSV.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="ReadCSV.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="ReadCSV.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="ReadCSV.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="ReadCSV.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="ReadCSV.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="ReadCSV.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="ReadCSV.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="ReadCSV.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="ReadCSV.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="ReadCSV.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="ReadCSV.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="ReadCSV.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="ReadCSV.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="ReadCSV.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="ReadCSV.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="ReadCSV.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="ReadCSV.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="ReadCSV.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="ReadCSV.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="ReadCSV.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="ReadCSV.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="ReadCSV.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="ReadCSV.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="ReadCSV.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="ReadCSV.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="ReadCSV.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Reduce">
<input id="Reduce-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Reduce</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Reduce-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Reduce"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Reduce-4249"><a href="#Reduce-4249"><span class="linenos">4249</span></a><span class="k">class</span> <span class="nc">Reduce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Reduce-4250"><a href="#Reduce-4250"><span class="linenos">4250</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;initial&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;merge&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;finish&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Reduce.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Reduce.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Reduce.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Reduce.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Reduce.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Reduce.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Reduce.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Reduce.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Reduce.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Reduce.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Reduce.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Reduce.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Reduce.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Reduce.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Reduce.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Reduce.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Reduce.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Reduce.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Reduce.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Reduce.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Reduce.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Reduce.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Reduce.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Reduce.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Reduce.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Reduce.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Reduce.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Reduce.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Reduce.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Reduce.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Reduce.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Reduce.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Reduce.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Reduce.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Reduce.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Reduce.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Reduce.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Reduce.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Reduce.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Reduce.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Reduce.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Reduce.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Reduce.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Reduce.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Reduce.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Reduce.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Reduce.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Reduce.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Reduce.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Reduce.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Reduce.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Reduce.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Reduce.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Reduce.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="RegexpExtract">
<input id="RegexpExtract-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">RegexpExtract</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="RegexpExtract-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#RegexpExtract"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-4253"><a href="#RegexpExtract-4253"><span class="linenos">4253</span></a><span class="k">class</span> <span class="nc">RegexpExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="RegexpExtract-4254"><a href="#RegexpExtract-4254"><span class="linenos">4254</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="RegexpExtract-4255"><a href="#RegexpExtract-4255"><span class="linenos">4255</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="RegexpExtract-4256"><a href="#RegexpExtract-4256"><span class="linenos">4256</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="RegexpExtract-4257"><a href="#RegexpExtract-4257"><span class="linenos">4257</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="RegexpExtract-4258"><a href="#RegexpExtract-4258"><span class="linenos">4258</span></a> <span class="s2">&quot;occurrence&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="RegexpExtract-4259"><a href="#RegexpExtract-4259"><span class="linenos">4259</span></a> <span class="s2">&quot;group&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="RegexpExtract-4260"><a href="#RegexpExtract-4260"><span class="linenos">4260</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="RegexpExtract.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="RegexpExtract.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="RegexpExtract.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="RegexpExtract.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="RegexpExtract.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="RegexpExtract.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="RegexpExtract.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="RegexpExtract.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RegexpExtract.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RegexpExtract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RegexpExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RegexpExtract.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RegexpExtract.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="RegexpExtract.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RegexpExtract.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RegexpExtract.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="RegexpExtract.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="RegexpExtract.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="RegexpExtract.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="RegexpExtract.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="RegexpExtract.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="RegexpExtract.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="RegexpExtract.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="RegexpExtract.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="RegexpExtract.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="RegexpExtract.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="RegexpExtract.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="RegexpExtract.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RegexpExtract.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RegexpExtract.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="RegexpExtract.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RegexpExtract.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RegexpExtract.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="RegexpExtract.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="RegexpExtract.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="RegexpExtract.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="RegexpExtract.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="RegexpExtract.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="RegexpExtract.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="RegexpExtract.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="RegexpExtract.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="RegexpExtract.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="RegexpExtract.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="RegexpExtract.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="RegexpExtract.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="RegexpExtract.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="RegexpExtract.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="RegexpExtract.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="RegexpExtract.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="RegexpExtract.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="RegexpExtract.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="RegexpExtract.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="RegexpExtract.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="RegexpExtract.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="RegexpLike">
<input id="RegexpLike-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">RegexpLike</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="RegexpLike-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#RegexpLike"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="RegexpLike-4263"><a href="#RegexpLike-4263"><span class="linenos">4263</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="RegexpLike-4264"><a href="#RegexpLike-4264"><span class="linenos">4264</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="RegexpLike.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="RegexpLike.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="RegexpLike.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="RegexpLike.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="RegexpLike.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="RegexpLike.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="RegexpLike.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="RegexpLike.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RegexpLike.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RegexpLike.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RegexpLike.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RegexpLike.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RegexpLike.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="RegexpLike.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RegexpLike.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RegexpLike.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="RegexpLike.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="RegexpLike.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="RegexpLike.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="RegexpLike.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="RegexpLike.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="RegexpLike.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="RegexpLike.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="RegexpLike.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="RegexpLike.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="RegexpLike.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="RegexpLike.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="RegexpLike.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RegexpLike.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RegexpLike.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="RegexpLike.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RegexpLike.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RegexpLike.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="RegexpLike.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="RegexpLike.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="RegexpLike.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="RegexpLike.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="RegexpLike.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="RegexpLike.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="RegexpLike.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="RegexpLike.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="RegexpLike.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="RegexpLike.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="RegexpLike.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="RegexpLike.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="RegexpLike.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="RegexpLike.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="RegexpLike.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="RegexpLike.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="RegexpLike.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="RegexpLike.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="RegexpLike.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="RegexpLike.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="RegexpLike.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="RegexpILike">
<input id="RegexpILike-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">RegexpILike</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="RegexpILike-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#RegexpILike"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="RegexpILike-4267"><a href="#RegexpILike-4267"><span class="linenos">4267</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="RegexpILike-4268"><a href="#RegexpILike-4268"><span class="linenos">4268</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="RegexpILike.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="RegexpILike.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="RegexpILike.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="RegexpILike.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="RegexpILike.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="RegexpILike.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="RegexpILike.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="RegexpILike.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RegexpILike.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RegexpILike.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RegexpILike.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RegexpILike.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RegexpILike.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="RegexpILike.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RegexpILike.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RegexpILike.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="RegexpILike.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="RegexpILike.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="RegexpILike.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="RegexpILike.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="RegexpILike.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="RegexpILike.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="RegexpILike.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="RegexpILike.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="RegexpILike.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="RegexpILike.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="RegexpILike.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="RegexpILike.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RegexpILike.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RegexpILike.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="RegexpILike.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RegexpILike.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RegexpILike.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="RegexpILike.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="RegexpILike.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="RegexpILike.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="RegexpILike.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="RegexpILike.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="RegexpILike.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="RegexpILike.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="RegexpILike.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="RegexpILike.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="RegexpILike.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="RegexpILike.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="RegexpILike.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="RegexpILike.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="RegexpILike.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="RegexpILike.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="RegexpILike.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="RegexpILike.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="RegexpILike.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="RegexpILike.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="RegexpILike.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="RegexpILike.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="RegexpSplit">
<input id="RegexpSplit-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">RegexpSplit</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="RegexpSplit-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#RegexpSplit"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="RegexpSplit-4273"><a href="#RegexpSplit-4273"><span class="linenos">4273</span></a><span class="k">class</span> <span class="nc">RegexpSplit</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="RegexpSplit-4274"><a href="#RegexpSplit-4274"><span class="linenos">4274</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="RegexpSplit.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="RegexpSplit.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="RegexpSplit.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="RegexpSplit.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="RegexpSplit.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="RegexpSplit.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="RegexpSplit.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="RegexpSplit.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RegexpSplit.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RegexpSplit.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RegexpSplit.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RegexpSplit.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RegexpSplit.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="RegexpSplit.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RegexpSplit.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RegexpSplit.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="RegexpSplit.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="RegexpSplit.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="RegexpSplit.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="RegexpSplit.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="RegexpSplit.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="RegexpSplit.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="RegexpSplit.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="RegexpSplit.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="RegexpSplit.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="RegexpSplit.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="RegexpSplit.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="RegexpSplit.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RegexpSplit.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RegexpSplit.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="RegexpSplit.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RegexpSplit.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RegexpSplit.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="RegexpSplit.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="RegexpSplit.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="RegexpSplit.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="RegexpSplit.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="RegexpSplit.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="RegexpSplit.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="RegexpSplit.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="RegexpSplit.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="RegexpSplit.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="RegexpSplit.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="RegexpSplit.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="RegexpSplit.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="RegexpSplit.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="RegexpSplit.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="RegexpSplit.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="RegexpSplit.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="RegexpSplit.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="RegexpSplit.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="RegexpSplit.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="RegexpSplit.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="RegexpSplit.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Repeat">
<input id="Repeat-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Repeat</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Repeat-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Repeat"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Repeat-4277"><a href="#Repeat-4277"><span class="linenos">4277</span></a><span class="k">class</span> <span class="nc">Repeat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Repeat-4278"><a href="#Repeat-4278"><span class="linenos">4278</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;times&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Repeat.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Repeat.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Repeat.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Repeat.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Repeat.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Repeat.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Repeat.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Repeat.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Repeat.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Repeat.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Repeat.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Repeat.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Repeat.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Repeat.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Repeat.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Repeat.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Repeat.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Repeat.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Repeat.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Repeat.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Repeat.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Repeat.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Repeat.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Repeat.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Repeat.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Repeat.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Repeat.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Repeat.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Repeat.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Repeat.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Repeat.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Repeat.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Repeat.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Repeat.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Repeat.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Repeat.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Repeat.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Repeat.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Repeat.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Repeat.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Repeat.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Repeat.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Repeat.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Repeat.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Repeat.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Repeat.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Repeat.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Repeat.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Repeat.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Repeat.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Repeat.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Repeat.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Repeat.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Repeat.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Round">
<input id="Round-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Round</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Round-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Round"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Round-4281"><a href="#Round-4281"><span class="linenos">4281</span></a><span class="k">class</span> <span class="nc">Round</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Round-4282"><a href="#Round-4282"><span class="linenos">4282</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;decimals&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Round.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Round.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Round.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Round.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Round.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Round.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Round.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Round.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Round.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Round.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Round.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Round.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Round.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Round.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Round.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Round.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Round.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Round.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Round.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Round.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Round.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Round.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Round.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Round.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Round.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Round.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Round.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Round.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Round.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Round.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Round.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Round.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Round.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Round.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Round.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Round.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Round.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Round.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Round.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Round.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Round.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Round.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Round.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Round.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Round.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Round.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Round.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Round.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Round.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Round.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Round.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Round.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Round.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Round.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="RowNumber">
<input id="RowNumber-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">RowNumber</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="RowNumber-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#RowNumber"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="RowNumber-4285"><a href="#RowNumber-4285"><span class="linenos">4285</span></a><span class="k">class</span> <span class="nc">RowNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="RowNumber-4286"><a href="#RowNumber-4286"><span class="linenos">4286</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="RowNumber.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="RowNumber.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="RowNumber.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="RowNumber.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="RowNumber.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="RowNumber.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="RowNumber.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="RowNumber.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="RowNumber.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="RowNumber.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="RowNumber.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="RowNumber.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="RowNumber.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="RowNumber.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="RowNumber.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="RowNumber.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="RowNumber.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="RowNumber.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="RowNumber.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="RowNumber.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="RowNumber.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="RowNumber.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="RowNumber.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="RowNumber.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="RowNumber.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="RowNumber.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="RowNumber.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="RowNumber.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="RowNumber.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="RowNumber.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="RowNumber.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="RowNumber.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="RowNumber.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="RowNumber.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="RowNumber.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="RowNumber.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="RowNumber.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="RowNumber.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="RowNumber.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="RowNumber.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="RowNumber.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="RowNumber.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="RowNumber.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="RowNumber.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="RowNumber.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="RowNumber.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="RowNumber.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="RowNumber.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="RowNumber.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="RowNumber.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="RowNumber.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="RowNumber.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="RowNumber.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="RowNumber.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="SafeDivide">
<input id="SafeDivide-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SafeDivide</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="SafeDivide-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SafeDivide"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SafeDivide-4289"><a href="#SafeDivide-4289"><span class="linenos">4289</span></a><span class="k">class</span> <span class="nc">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="SafeDivide-4290"><a href="#SafeDivide-4290"><span class="linenos">4290</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SafeDivide.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SafeDivide.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SafeDivide.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SafeDivide.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SafeDivide.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SafeDivide.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SafeDivide.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SafeDivide.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SafeDivide.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SafeDivide.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SafeDivide.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SafeDivide.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SafeDivide.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SafeDivide.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SafeDivide.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SafeDivide.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SafeDivide.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SafeDivide.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SafeDivide.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SafeDivide.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SafeDivide.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SafeDivide.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SafeDivide.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SafeDivide.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SafeDivide.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SafeDivide.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SafeDivide.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SafeDivide.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SafeDivide.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SafeDivide.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SafeDivide.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SafeDivide.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SafeDivide.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SafeDivide.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SafeDivide.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SafeDivide.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SafeDivide.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SafeDivide.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="SafeDivide.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="SafeDivide.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="SafeDivide.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="SafeDivide.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="SafeDivide.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SafeDivide.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SafeDivide.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="SafeDivide.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SafeDivide.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SafeDivide.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="SafeDivide.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SafeDivide.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SafeDivide.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SafeDivide.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="SafeDivide.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="SafeDivide.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="SetAgg">
<input id="SetAgg-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SetAgg</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="SetAgg-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SetAgg"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SetAgg-4293"><a href="#SetAgg-4293"><span class="linenos">4293</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="SetAgg-4294"><a href="#SetAgg-4294"><span class="linenos">4294</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SetAgg.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SetAgg.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SetAgg.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SetAgg.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SetAgg.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SetAgg.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SetAgg.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SetAgg.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SetAgg.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SetAgg.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SetAgg.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SetAgg.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SetAgg.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SetAgg.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SetAgg.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SetAgg.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SetAgg.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SetAgg.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SetAgg.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SetAgg.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SetAgg.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SetAgg.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SetAgg.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SetAgg.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SetAgg.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SetAgg.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SetAgg.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SetAgg.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SetAgg.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SetAgg.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SetAgg.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SetAgg.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SetAgg.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SetAgg.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SetAgg.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SetAgg.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SetAgg.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SetAgg.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="SetAgg.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="SetAgg.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="SetAgg.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="SetAgg.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="SetAgg.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SetAgg.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SetAgg.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="SetAgg.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SetAgg.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SetAgg.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="SetAgg.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SetAgg.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SetAgg.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SetAgg.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="SetAgg.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="SetAgg.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="SHA">
<input id="SHA-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SHA</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="SHA-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SHA"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SHA-4297"><a href="#SHA-4297"><span class="linenos">4297</span></a><span class="k">class</span> <span class="nc">SHA</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="SHA-4298"><a href="#SHA-4298"><span class="linenos">4298</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA&quot;</span><span class="p">,</span> <span class="s2">&quot;SHA1&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SHA.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SHA.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SHA.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SHA.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SHA.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SHA.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SHA.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SHA.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SHA.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SHA.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SHA.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SHA.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SHA.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SHA.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SHA.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SHA.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SHA.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SHA.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SHA.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SHA.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SHA.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SHA.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SHA.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SHA.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SHA.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SHA.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SHA.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SHA.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SHA.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SHA.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SHA.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SHA.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SHA.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SHA.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SHA.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SHA.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SHA.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SHA.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="SHA.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="SHA.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="SHA.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="SHA.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="SHA.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SHA.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SHA.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="SHA.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SHA.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SHA.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="SHA.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SHA.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SHA.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SHA.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="SHA.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="SHA.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="SHA2">
<input id="SHA2-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SHA2</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="SHA2-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SHA2"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SHA2-4301"><a href="#SHA2-4301"><span class="linenos">4301</span></a><span class="k">class</span> <span class="nc">SHA2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="SHA2-4302"><a href="#SHA2-4302"><span class="linenos">4302</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;SHA2&quot;</span><span class="p">]</span>
</span><span id="SHA2-4303"><a href="#SHA2-4303"><span class="linenos">4303</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SHA2.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SHA2.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SHA2.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SHA2.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SHA2.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SHA2.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SHA2.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SHA2.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SHA2.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SHA2.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SHA2.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SHA2.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SHA2.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SHA2.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SHA2.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SHA2.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SHA2.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SHA2.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SHA2.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SHA2.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SHA2.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SHA2.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SHA2.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SHA2.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SHA2.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SHA2.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SHA2.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SHA2.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SHA2.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SHA2.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SHA2.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SHA2.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SHA2.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SHA2.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SHA2.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SHA2.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SHA2.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SHA2.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="SHA2.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="SHA2.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="SHA2.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="SHA2.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="SHA2.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SHA2.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SHA2.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="SHA2.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SHA2.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SHA2.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="SHA2.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SHA2.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SHA2.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SHA2.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="SHA2.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="SHA2.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="SortArray">
<input id="SortArray-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">SortArray</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="SortArray-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#SortArray"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="SortArray-4306"><a href="#SortArray-4306"><span class="linenos">4306</span></a><span class="k">class</span> <span class="nc">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="SortArray-4307"><a href="#SortArray-4307"><span class="linenos">4307</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;asc&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="SortArray.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="SortArray.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="SortArray.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="SortArray.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="SortArray.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="SortArray.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="SortArray.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="SortArray.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="SortArray.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="SortArray.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="SortArray.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="SortArray.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="SortArray.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="SortArray.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="SortArray.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="SortArray.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="SortArray.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="SortArray.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="SortArray.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="SortArray.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="SortArray.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="SortArray.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="SortArray.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="SortArray.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="SortArray.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="SortArray.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="SortArray.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="SortArray.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="SortArray.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="SortArray.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="SortArray.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="SortArray.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="SortArray.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="SortArray.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="SortArray.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="SortArray.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="SortArray.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="SortArray.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="SortArray.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="SortArray.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="SortArray.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="SortArray.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="SortArray.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="SortArray.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="SortArray.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="SortArray.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="SortArray.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="SortArray.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="SortArray.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="SortArray.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="SortArray.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="SortArray.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="SortArray.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="SortArray.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Split">
<input id="Split-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Split</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Split-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Split"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Split-4310"><a href="#Split-4310"><span class="linenos">4310</span></a><span class="k">class</span> <span class="nc">Split</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Split-4311"><a href="#Split-4311"><span class="linenos">4311</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;limit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Split.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Split.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Split.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Split.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Split.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Split.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Split.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Split.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Split.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Split.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Split.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Split.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Split.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Split.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Split.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Split.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Split.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Split.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Split.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Split.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Split.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Split.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Split.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Split.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Split.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Split.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Split.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Split.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Split.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Split.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Split.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Split.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Split.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Split.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Split.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Split.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Split.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Split.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Split.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Split.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Split.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Split.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Split.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Split.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Split.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Split.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Split.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Split.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Split.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Split.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Split.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Split.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Split.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Split.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Substring">
<input id="Substring-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Substring</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Substring-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Substring"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Substring-4316"><a href="#Substring-4316"><span class="linenos">4316</span></a><span class="k">class</span> <span class="nc">Substring</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Substring-4317"><a href="#Substring-4317"><span class="linenos">4317</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;start&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;length&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Substring.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Substring.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Substring.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Substring.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Substring.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Substring.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Substring.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Substring.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Substring.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Substring.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Substring.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Substring.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Substring.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Substring.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Substring.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Substring.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Substring.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Substring.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Substring.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Substring.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Substring.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Substring.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Substring.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Substring.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Substring.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Substring.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Substring.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Substring.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Substring.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Substring.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Substring.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Substring.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Substring.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Substring.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Substring.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Substring.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Substring.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Substring.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Substring.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Substring.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Substring.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Substring.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Substring.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Substring.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Substring.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Substring.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Substring.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Substring.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Substring.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Substring.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Substring.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Substring.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Substring.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Substring.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="StandardHash">
<input id="StandardHash-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">StandardHash</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="StandardHash-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#StandardHash"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="StandardHash-4320"><a href="#StandardHash-4320"><span class="linenos">4320</span></a><span class="k">class</span> <span class="nc">StandardHash</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="StandardHash-4321"><a href="#StandardHash-4321"><span class="linenos">4321</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="StandardHash.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="StandardHash.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="StandardHash.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="StandardHash.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="StandardHash.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="StandardHash.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="StandardHash.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="StandardHash.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StandardHash.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StandardHash.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StandardHash.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StandardHash.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StandardHash.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="StandardHash.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StandardHash.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StandardHash.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="StandardHash.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="StandardHash.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="StandardHash.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="StandardHash.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="StandardHash.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="StandardHash.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="StandardHash.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="StandardHash.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="StandardHash.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="StandardHash.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="StandardHash.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="StandardHash.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StandardHash.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StandardHash.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="StandardHash.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StandardHash.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StandardHash.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="StandardHash.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="StandardHash.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="StandardHash.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="StandardHash.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="StandardHash.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="StandardHash.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="StandardHash.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="StandardHash.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="StandardHash.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="StandardHash.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StandardHash.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StandardHash.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="StandardHash.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StandardHash.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StandardHash.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="StandardHash.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StandardHash.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StandardHash.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StandardHash.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="StandardHash.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="StandardHash.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="StrPosition">
<input id="StrPosition-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">StrPosition</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="StrPosition-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#StrPosition"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-4324"><a href="#StrPosition-4324"><span class="linenos">4324</span></a><span class="k">class</span> <span class="nc">StrPosition</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="StrPosition-4325"><a href="#StrPosition-4325"><span class="linenos">4325</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="StrPosition-4326"><a href="#StrPosition-4326"><span class="linenos">4326</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="StrPosition-4327"><a href="#StrPosition-4327"><span class="linenos">4327</span></a> <span class="s2">&quot;substr&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="StrPosition-4328"><a href="#StrPosition-4328"><span class="linenos">4328</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="StrPosition-4329"><a href="#StrPosition-4329"><span class="linenos">4329</span></a> <span class="s2">&quot;instance&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="StrPosition-4330"><a href="#StrPosition-4330"><span class="linenos">4330</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="StrPosition.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="StrPosition.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="StrPosition.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="StrPosition.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="StrPosition.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="StrPosition.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="StrPosition.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="StrPosition.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StrPosition.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StrPosition.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StrPosition.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StrPosition.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StrPosition.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="StrPosition.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StrPosition.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StrPosition.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="StrPosition.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="StrPosition.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="StrPosition.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="StrPosition.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="StrPosition.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="StrPosition.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="StrPosition.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="StrPosition.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="StrPosition.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="StrPosition.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="StrPosition.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="StrPosition.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StrPosition.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StrPosition.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="StrPosition.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StrPosition.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StrPosition.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="StrPosition.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="StrPosition.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="StrPosition.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="StrPosition.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="StrPosition.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="StrPosition.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="StrPosition.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="StrPosition.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="StrPosition.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="StrPosition.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StrPosition.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StrPosition.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="StrPosition.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StrPosition.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StrPosition.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="StrPosition.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StrPosition.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StrPosition.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StrPosition.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="StrPosition.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="StrPosition.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="StrToDate">
<input id="StrToDate-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">StrToDate</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="StrToDate-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#StrToDate"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="StrToDate-4333"><a href="#StrToDate-4333"><span class="linenos">4333</span></a><span class="k">class</span> <span class="nc">StrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="StrToDate-4334"><a href="#StrToDate-4334"><span class="linenos">4334</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="StrToDate.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="StrToDate.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="StrToDate.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="StrToDate.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="StrToDate.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="StrToDate.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="StrToDate.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="StrToDate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StrToDate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StrToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StrToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StrToDate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StrToDate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="StrToDate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StrToDate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StrToDate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="StrToDate.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="StrToDate.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="StrToDate.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="StrToDate.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="StrToDate.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="StrToDate.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="StrToDate.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="StrToDate.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="StrToDate.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="StrToDate.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="StrToDate.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="StrToDate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StrToDate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StrToDate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="StrToDate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StrToDate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StrToDate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="StrToDate.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="StrToDate.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="StrToDate.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="StrToDate.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="StrToDate.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="StrToDate.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="StrToDate.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="StrToDate.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="StrToDate.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="StrToDate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StrToDate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StrToDate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="StrToDate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StrToDate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StrToDate.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="StrToDate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StrToDate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StrToDate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StrToDate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="StrToDate.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="StrToDate.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="StrToTime">
<input id="StrToTime-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">StrToTime</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="StrToTime-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#StrToTime"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-4337"><a href="#StrToTime-4337"><span class="linenos">4337</span></a><span class="k">class</span> <span class="nc">StrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="StrToTime-4338"><a href="#StrToTime-4338"><span class="linenos">4338</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="StrToTime.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="StrToTime.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="StrToTime.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="StrToTime.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="StrToTime.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="StrToTime.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="StrToTime.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="StrToTime.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StrToTime.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StrToTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StrToTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StrToTime.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StrToTime.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="StrToTime.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StrToTime.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StrToTime.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="StrToTime.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="StrToTime.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="StrToTime.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="StrToTime.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="StrToTime.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="StrToTime.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="StrToTime.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="StrToTime.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="StrToTime.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="StrToTime.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="StrToTime.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="StrToTime.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StrToTime.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StrToTime.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="StrToTime.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StrToTime.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StrToTime.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="StrToTime.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="StrToTime.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="StrToTime.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="StrToTime.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="StrToTime.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="StrToTime.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="StrToTime.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="StrToTime.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="StrToTime.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="StrToTime.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StrToTime.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StrToTime.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="StrToTime.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StrToTime.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StrToTime.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="StrToTime.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StrToTime.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StrToTime.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StrToTime.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="StrToTime.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="StrToTime.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="StrToUnix">
<input id="StrToUnix-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">StrToUnix</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="StrToUnix-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#StrToUnix"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="StrToUnix-4343"><a href="#StrToUnix-4343"><span class="linenos">4343</span></a><span class="k">class</span> <span class="nc">StrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="StrToUnix-4344"><a href="#StrToUnix-4344"><span class="linenos">4344</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="StrToUnix.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="StrToUnix.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="StrToUnix.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="StrToUnix.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="StrToUnix.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="StrToUnix.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="StrToUnix.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="StrToUnix.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StrToUnix.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StrToUnix.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StrToUnix.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StrToUnix.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StrToUnix.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="StrToUnix.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StrToUnix.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StrToUnix.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="StrToUnix.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="StrToUnix.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="StrToUnix.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="StrToUnix.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="StrToUnix.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="StrToUnix.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="StrToUnix.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="StrToUnix.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="StrToUnix.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="StrToUnix.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="StrToUnix.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="StrToUnix.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StrToUnix.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StrToUnix.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="StrToUnix.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StrToUnix.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StrToUnix.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="StrToUnix.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="StrToUnix.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="StrToUnix.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="StrToUnix.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="StrToUnix.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="StrToUnix.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="StrToUnix.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="StrToUnix.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="StrToUnix.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="StrToUnix.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StrToUnix.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StrToUnix.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="StrToUnix.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StrToUnix.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StrToUnix.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="StrToUnix.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StrToUnix.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StrToUnix.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StrToUnix.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="StrToUnix.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="StrToUnix.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="NumberToStr">
<input id="NumberToStr-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">NumberToStr</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="NumberToStr-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#NumberToStr"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-4347"><a href="#NumberToStr-4347"><span class="linenos">4347</span></a><span class="k">class</span> <span class="nc">NumberToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="NumberToStr-4348"><a href="#NumberToStr-4348"><span class="linenos">4348</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="NumberToStr.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="NumberToStr.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="NumberToStr.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="NumberToStr.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="NumberToStr.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="NumberToStr.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="NumberToStr.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="NumberToStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NumberToStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NumberToStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NumberToStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NumberToStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NumberToStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="NumberToStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NumberToStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NumberToStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="NumberToStr.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="NumberToStr.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="NumberToStr.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="NumberToStr.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="NumberToStr.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="NumberToStr.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="NumberToStr.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="NumberToStr.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="NumberToStr.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="NumberToStr.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="NumberToStr.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="NumberToStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NumberToStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NumberToStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="NumberToStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NumberToStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NumberToStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="NumberToStr.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="NumberToStr.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="NumberToStr.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="NumberToStr.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="NumberToStr.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="NumberToStr.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="NumberToStr.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="NumberToStr.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="NumberToStr.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="NumberToStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="NumberToStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="NumberToStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="NumberToStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="NumberToStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="NumberToStr.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="NumberToStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="NumberToStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="NumberToStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="NumberToStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="NumberToStr.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="NumberToStr.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Struct">
<input id="Struct-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Struct</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Struct-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Struct"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Struct-4351"><a href="#Struct-4351"><span class="linenos">4351</span></a><span class="k">class</span> <span class="nc">Struct</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Struct-4352"><a href="#Struct-4352"><span class="linenos">4352</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span><span id="Struct-4353"><a href="#Struct-4353"><span class="linenos">4353</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Struct.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Struct.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Struct.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Struct.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Struct.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Struct.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Struct.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Struct.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Struct.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Struct.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Struct.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Struct.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Struct.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Struct.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Struct.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Struct.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Struct.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Struct.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Struct.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Struct.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Struct.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Struct.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Struct.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Struct.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Struct.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Struct.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Struct.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Struct.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Struct.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Struct.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Struct.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Struct.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Struct.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Struct.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Struct.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Struct.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Struct.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Struct.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Struct.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Struct.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Struct.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Struct.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Struct.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Struct.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Struct.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Struct.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Struct.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Struct.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Struct.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Struct.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Struct.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Struct.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Struct.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Struct.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="StructExtract">
<input id="StructExtract-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">StructExtract</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="StructExtract-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#StructExtract"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="StructExtract-4356"><a href="#StructExtract-4356"><span class="linenos">4356</span></a><span class="k">class</span> <span class="nc">StructExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="StructExtract-4357"><a href="#StructExtract-4357"><span class="linenos">4357</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="StructExtract.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="StructExtract.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="StructExtract.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="StructExtract.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="StructExtract.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="StructExtract.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="StructExtract.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="StructExtract.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StructExtract.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StructExtract.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StructExtract.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StructExtract.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StructExtract.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="StructExtract.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StructExtract.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StructExtract.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="StructExtract.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="StructExtract.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="StructExtract.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="StructExtract.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="StructExtract.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="StructExtract.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="StructExtract.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="StructExtract.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="StructExtract.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="StructExtract.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="StructExtract.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="StructExtract.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StructExtract.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StructExtract.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="StructExtract.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StructExtract.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StructExtract.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="StructExtract.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="StructExtract.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="StructExtract.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="StructExtract.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="StructExtract.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="StructExtract.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="StructExtract.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="StructExtract.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="StructExtract.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="StructExtract.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StructExtract.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StructExtract.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="StructExtract.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StructExtract.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StructExtract.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="StructExtract.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StructExtract.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StructExtract.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StructExtract.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="StructExtract.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="StructExtract.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Sum">
<input id="Sum-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Sum</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="Sum-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Sum"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Sum-4360"><a href="#Sum-4360"><span class="linenos">4360</span></a><span class="k">class</span> <span class="nc">Sum</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="Sum-4361"><a href="#Sum-4361"><span class="linenos">4361</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Sum.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Sum.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Sum.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Sum.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Sum.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Sum.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Sum.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Sum.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Sum.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Sum.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Sum.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Sum.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Sum.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Sum.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Sum.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Sum.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Sum.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Sum.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Sum.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Sum.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Sum.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Sum.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Sum.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Sum.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Sum.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Sum.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Sum.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Sum.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Sum.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Sum.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Sum.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Sum.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Sum.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Sum.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Sum.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Sum.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Sum.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Sum.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Sum.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Sum.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Sum.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Sum.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Sum.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Sum.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Sum.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Sum.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Sum.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Sum.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Sum.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Sum.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Sum.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Sum.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Sum.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Sum.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Sqrt">
<input id="Sqrt-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Sqrt</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Sqrt-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Sqrt"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-4364"><a href="#Sqrt-4364"><span class="linenos">4364</span></a><span class="k">class</span> <span class="nc">Sqrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Sqrt-4365"><a href="#Sqrt-4365"><span class="linenos">4365</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Sqrt.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Sqrt.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Sqrt.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Sqrt.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Sqrt.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Sqrt.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Sqrt.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Sqrt.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Sqrt.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Sqrt.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Sqrt.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Sqrt.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Sqrt.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Sqrt.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Sqrt.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Sqrt.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Sqrt.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Sqrt.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Sqrt.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Sqrt.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Sqrt.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Sqrt.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Sqrt.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Sqrt.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Sqrt.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Sqrt.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Sqrt.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Sqrt.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Sqrt.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Sqrt.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Sqrt.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Sqrt.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Sqrt.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Sqrt.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Sqrt.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Sqrt.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Sqrt.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Sqrt.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Sqrt.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Sqrt.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Sqrt.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Sqrt.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Sqrt.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Sqrt.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Sqrt.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Sqrt.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Sqrt.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Sqrt.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Sqrt.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Sqrt.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Sqrt.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Sqrt.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Sqrt.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Sqrt.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Stddev">
<input id="Stddev-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Stddev</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="Stddev-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Stddev"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-4368"><a href="#Stddev-4368"><span class="linenos">4368</span></a><span class="k">class</span> <span class="nc">Stddev</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="Stddev-4369"><a href="#Stddev-4369"><span class="linenos">4369</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Stddev.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Stddev.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Stddev.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Stddev.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Stddev.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Stddev.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Stddev.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Stddev.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Stddev.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Stddev.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Stddev.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Stddev.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Stddev.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Stddev.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Stddev.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Stddev.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Stddev.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Stddev.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Stddev.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Stddev.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Stddev.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Stddev.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Stddev.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Stddev.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Stddev.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Stddev.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Stddev.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Stddev.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Stddev.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Stddev.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Stddev.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Stddev.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Stddev.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Stddev.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Stddev.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Stddev.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Stddev.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Stddev.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Stddev.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Stddev.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Stddev.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Stddev.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Stddev.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Stddev.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Stddev.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Stddev.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Stddev.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Stddev.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Stddev.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Stddev.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Stddev.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Stddev.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Stddev.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Stddev.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="StddevPop">
<input id="StddevPop-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">StddevPop</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="StddevPop-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#StddevPop"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-4372"><a href="#StddevPop-4372"><span class="linenos">4372</span></a><span class="k">class</span> <span class="nc">StddevPop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="StddevPop-4373"><a href="#StddevPop-4373"><span class="linenos">4373</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="StddevPop.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="StddevPop.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="StddevPop.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="StddevPop.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="StddevPop.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="StddevPop.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="StddevPop.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="StddevPop.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StddevPop.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StddevPop.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StddevPop.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StddevPop.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StddevPop.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="StddevPop.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StddevPop.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StddevPop.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="StddevPop.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="StddevPop.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="StddevPop.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="StddevPop.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="StddevPop.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="StddevPop.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="StddevPop.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="StddevPop.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="StddevPop.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="StddevPop.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="StddevPop.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="StddevPop.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StddevPop.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StddevPop.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="StddevPop.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StddevPop.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StddevPop.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="StddevPop.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="StddevPop.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="StddevPop.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="StddevPop.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="StddevPop.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="StddevPop.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="StddevPop.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="StddevPop.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="StddevPop.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="StddevPop.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StddevPop.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StddevPop.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="StddevPop.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StddevPop.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StddevPop.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="StddevPop.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StddevPop.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StddevPop.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StddevPop.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="StddevPop.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="StddevPop.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="StddevSamp">
<input id="StddevSamp-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">StddevSamp</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="StddevSamp-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#StddevSamp"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-4376"><a href="#StddevSamp-4376"><span class="linenos">4376</span></a><span class="k">class</span> <span class="nc">StddevSamp</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="StddevSamp-4377"><a href="#StddevSamp-4377"><span class="linenos">4377</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="StddevSamp.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="StddevSamp.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="StddevSamp.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="StddevSamp.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="StddevSamp.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="StddevSamp.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="StddevSamp.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="StddevSamp.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="StddevSamp.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="StddevSamp.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="StddevSamp.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="StddevSamp.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="StddevSamp.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="StddevSamp.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="StddevSamp.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="StddevSamp.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="StddevSamp.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="StddevSamp.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="StddevSamp.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="StddevSamp.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="StddevSamp.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="StddevSamp.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="StddevSamp.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="StddevSamp.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="StddevSamp.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="StddevSamp.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="StddevSamp.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="StddevSamp.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="StddevSamp.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="StddevSamp.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="StddevSamp.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="StddevSamp.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="StddevSamp.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="StddevSamp.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="StddevSamp.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="StddevSamp.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="StddevSamp.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="StddevSamp.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="StddevSamp.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="StddevSamp.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="StddevSamp.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="StddevSamp.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="StddevSamp.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="StddevSamp.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="StddevSamp.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="StddevSamp.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="StddevSamp.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="StddevSamp.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="StddevSamp.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="StddevSamp.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="StddevSamp.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="StddevSamp.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="StddevSamp.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="StddevSamp.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimeToStr">
<input id="TimeToStr-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimeToStr</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="TimeToStr-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimeToStr"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-4380"><a href="#TimeToStr-4380"><span class="linenos">4380</span></a><span class="k">class</span> <span class="nc">TimeToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="TimeToStr-4381"><a href="#TimeToStr-4381"><span class="linenos">4381</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimeToStr.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TimeToStr.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimeToStr.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimeToStr.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimeToStr.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimeToStr.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimeToStr.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimeToStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeToStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeToStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeToStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeToStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeToStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimeToStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeToStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeToStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimeToStr.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimeToStr.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimeToStr.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimeToStr.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimeToStr.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimeToStr.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimeToStr.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimeToStr.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimeToStr.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimeToStr.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimeToStr.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimeToStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeToStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeToStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimeToStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeToStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeToStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimeToStr.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimeToStr.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimeToStr.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimeToStr.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimeToStr.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimeToStr.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimeToStr.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimeToStr.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimeToStr.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimeToStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeToStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeToStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimeToStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeToStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeToStr.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimeToStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeToStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeToStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeToStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimeToStr.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimeToStr.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimeToTimeStr">
<input id="TimeToTimeStr-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimeToTimeStr</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="TimeToTimeStr-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimeToTimeStr"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-4384"><a href="#TimeToTimeStr-4384"><span class="linenos">4384</span></a><span class="k">class</span> <span class="nc">TimeToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="TimeToTimeStr-4385"><a href="#TimeToTimeStr-4385"><span class="linenos">4385</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimeToTimeStr.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TimeToTimeStr.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimeToTimeStr.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimeToTimeStr.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimeToTimeStr.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimeToTimeStr.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimeToTimeStr.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimeToTimeStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeToTimeStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeToTimeStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeToTimeStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeToTimeStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeToTimeStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimeToTimeStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeToTimeStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeToTimeStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimeToTimeStr.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimeToTimeStr.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimeToTimeStr.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimeToTimeStr.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimeToTimeStr.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimeToTimeStr.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimeToTimeStr.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimeToTimeStr.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimeToTimeStr.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimeToTimeStr.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimeToTimeStr.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimeToTimeStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeToTimeStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeToTimeStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimeToTimeStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeToTimeStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeToTimeStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimeToTimeStr.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimeToTimeStr.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimeToTimeStr.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimeToTimeStr.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimeToTimeStr.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimeToTimeStr.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimeToTimeStr.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimeToTimeStr.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimeToTimeStr.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimeToTimeStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeToTimeStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeToTimeStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimeToTimeStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeToTimeStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeToTimeStr.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimeToTimeStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeToTimeStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeToTimeStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeToTimeStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimeToTimeStr.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimeToTimeStr.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimeToUnix">
<input id="TimeToUnix-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimeToUnix</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="TimeToUnix-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimeToUnix"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-4388"><a href="#TimeToUnix-4388"><span class="linenos">4388</span></a><span class="k">class</span> <span class="nc">TimeToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="TimeToUnix-4389"><a href="#TimeToUnix-4389"><span class="linenos">4389</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimeToUnix.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TimeToUnix.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimeToUnix.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimeToUnix.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimeToUnix.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimeToUnix.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimeToUnix.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimeToUnix.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeToUnix.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeToUnix.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeToUnix.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeToUnix.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeToUnix.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimeToUnix.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeToUnix.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeToUnix.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimeToUnix.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimeToUnix.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimeToUnix.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimeToUnix.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimeToUnix.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimeToUnix.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimeToUnix.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimeToUnix.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimeToUnix.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimeToUnix.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimeToUnix.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimeToUnix.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeToUnix.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeToUnix.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimeToUnix.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeToUnix.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeToUnix.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimeToUnix.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimeToUnix.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimeToUnix.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimeToUnix.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimeToUnix.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimeToUnix.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimeToUnix.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimeToUnix.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimeToUnix.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimeToUnix.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeToUnix.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeToUnix.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimeToUnix.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeToUnix.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeToUnix.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimeToUnix.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeToUnix.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeToUnix.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeToUnix.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimeToUnix.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimeToUnix.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimeStrToDate">
<input id="TimeStrToDate-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimeStrToDate</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="TimeStrToDate-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimeStrToDate"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-4392"><a href="#TimeStrToDate-4392"><span class="linenos">4392</span></a><span class="k">class</span> <span class="nc">TimeStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="TimeStrToDate-4393"><a href="#TimeStrToDate-4393"><span class="linenos">4393</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimeStrToDate.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TimeStrToDate.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimeStrToDate.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimeStrToDate.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimeStrToDate.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimeStrToDate.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimeStrToDate.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimeStrToDate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeStrToDate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeStrToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeStrToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeStrToDate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeStrToDate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimeStrToDate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeStrToDate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeStrToDate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimeStrToDate.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimeStrToDate.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimeStrToDate.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimeStrToDate.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimeStrToDate.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimeStrToDate.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimeStrToDate.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimeStrToDate.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimeStrToDate.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimeStrToDate.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimeStrToDate.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimeStrToDate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeStrToDate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeStrToDate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimeStrToDate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeStrToDate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeStrToDate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimeStrToDate.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimeStrToDate.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimeStrToDate.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimeStrToDate.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimeStrToDate.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimeStrToDate.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimeStrToDate.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimeStrToDate.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimeStrToDate.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimeStrToDate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeStrToDate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeStrToDate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimeStrToDate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeStrToDate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeStrToDate.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimeStrToDate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeStrToDate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeStrToDate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeStrToDate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimeStrToDate.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimeStrToDate.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimeStrToTime">
<input id="TimeStrToTime-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimeStrToTime</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="TimeStrToTime-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimeStrToTime"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-4396"><a href="#TimeStrToTime-4396"><span class="linenos">4396</span></a><span class="k">class</span> <span class="nc">TimeStrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="TimeStrToTime-4397"><a href="#TimeStrToTime-4397"><span class="linenos">4397</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimeStrToTime.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TimeStrToTime.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimeStrToTime.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimeStrToTime.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimeStrToTime.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimeStrToTime.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimeStrToTime.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimeStrToTime.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeStrToTime.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeStrToTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeStrToTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeStrToTime.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeStrToTime.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimeStrToTime.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeStrToTime.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeStrToTime.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimeStrToTime.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimeStrToTime.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimeStrToTime.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimeStrToTime.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimeStrToTime.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimeStrToTime.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimeStrToTime.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimeStrToTime.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimeStrToTime.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimeStrToTime.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimeStrToTime.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimeStrToTime.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeStrToTime.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeStrToTime.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimeStrToTime.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeStrToTime.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeStrToTime.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimeStrToTime.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimeStrToTime.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimeStrToTime.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimeStrToTime.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimeStrToTime.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimeStrToTime.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimeStrToTime.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimeStrToTime.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimeStrToTime.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimeStrToTime.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeStrToTime.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeStrToTime.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimeStrToTime.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeStrToTime.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeStrToTime.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimeStrToTime.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeStrToTime.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeStrToTime.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeStrToTime.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimeStrToTime.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimeStrToTime.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="TimeStrToUnix">
<input id="TimeStrToUnix-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TimeStrToUnix</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="TimeStrToUnix-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TimeStrToUnix"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-4400"><a href="#TimeStrToUnix-4400"><span class="linenos">4400</span></a><span class="k">class</span> <span class="nc">TimeStrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="TimeStrToUnix-4401"><a href="#TimeStrToUnix-4401"><span class="linenos">4401</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TimeStrToUnix.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TimeStrToUnix.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TimeStrToUnix.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TimeStrToUnix.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TimeStrToUnix.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TimeStrToUnix.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TimeStrToUnix.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TimeStrToUnix.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TimeStrToUnix.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TimeStrToUnix.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TimeStrToUnix.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TimeStrToUnix.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TimeStrToUnix.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TimeStrToUnix.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TimeStrToUnix.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TimeStrToUnix.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TimeStrToUnix.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TimeStrToUnix.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TimeStrToUnix.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TimeStrToUnix.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TimeStrToUnix.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TimeStrToUnix.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TimeStrToUnix.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TimeStrToUnix.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TimeStrToUnix.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TimeStrToUnix.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TimeStrToUnix.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TimeStrToUnix.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TimeStrToUnix.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TimeStrToUnix.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TimeStrToUnix.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TimeStrToUnix.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TimeStrToUnix.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TimeStrToUnix.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TimeStrToUnix.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TimeStrToUnix.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TimeStrToUnix.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TimeStrToUnix.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TimeStrToUnix.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TimeStrToUnix.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TimeStrToUnix.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TimeStrToUnix.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TimeStrToUnix.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TimeStrToUnix.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TimeStrToUnix.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TimeStrToUnix.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TimeStrToUnix.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TimeStrToUnix.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TimeStrToUnix.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TimeStrToUnix.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TimeStrToUnix.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TimeStrToUnix.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TimeStrToUnix.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TimeStrToUnix.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Trim">
<input id="Trim-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Trim</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Trim-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Trim"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Trim-4404"><a href="#Trim-4404"><span class="linenos">4404</span></a><span class="k">class</span> <span class="nc">Trim</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Trim-4405"><a href="#Trim-4405"><span class="linenos">4405</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span>
</span><span id="Trim-4406"><a href="#Trim-4406"><span class="linenos">4406</span></a> <span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="Trim-4407"><a href="#Trim-4407"><span class="linenos">4407</span></a> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Trim-4408"><a href="#Trim-4408"><span class="linenos">4408</span></a> <span class="s2">&quot;position&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Trim-4409"><a href="#Trim-4409"><span class="linenos">4409</span></a> <span class="s2">&quot;collation&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="Trim-4410"><a href="#Trim-4410"><span class="linenos">4410</span></a> <span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Trim.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Trim.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Trim.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Trim.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Trim.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Trim.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Trim.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Trim.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Trim.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Trim.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Trim.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Trim.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Trim.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Trim.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Trim.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Trim.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Trim.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Trim.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Trim.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Trim.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Trim.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Trim.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Trim.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Trim.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Trim.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Trim.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Trim.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Trim.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Trim.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Trim.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Trim.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Trim.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Trim.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Trim.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Trim.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Trim.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Trim.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Trim.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Trim.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Trim.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Trim.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Trim.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Trim.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Trim.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Trim.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Trim.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Trim.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Trim.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Trim.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Trim.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Trim.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Trim.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Trim.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Trim.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="TsOrDsAdd">
<input id="TsOrDsAdd-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TsOrDsAdd</span><wbr>(<span class="base"><a href="#Func">Func</a></span>, <span class="base"><a href="#TimeUnit">TimeUnit</a></span>):
<label class="view-source-button" for="TsOrDsAdd-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TsOrDsAdd"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-4413"><a href="#TsOrDsAdd-4413"><span class="linenos">4413</span></a><span class="k">class</span> <span class="nc">TsOrDsAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span>
</span><span id="TsOrDsAdd-4414"><a href="#TsOrDsAdd-4414"><span class="linenos">4414</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expression&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;unit&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#TimeUnit">TimeUnit</a></dt>
<dd id="TsOrDsAdd.__init__" class="function"><a href="#TimeUnit.__init__">TimeUnit</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TsOrDsAdd.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TsOrDsAdd.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TsOrDsAdd.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TsOrDsAdd.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TsOrDsAdd.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TsOrDsAdd.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TsOrDsAdd.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TsOrDsAdd.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TsOrDsAdd.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TsOrDsAdd.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TsOrDsAdd.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TsOrDsAdd.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TsOrDsAdd.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TsOrDsAdd.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TsOrDsAdd.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TsOrDsAdd.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TsOrDsAdd.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TsOrDsAdd.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TsOrDsAdd.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TsOrDsAdd.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TsOrDsAdd.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TsOrDsAdd.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TsOrDsAdd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TsOrDsAdd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TsOrDsAdd.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TsOrDsAdd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TsOrDsAdd.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TsOrDsAdd.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TsOrDsAdd.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TsOrDsAdd.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TsOrDsAdd.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TsOrDsAdd.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TsOrDsAdd.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TsOrDsAdd.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TsOrDsAdd.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TsOrDsAdd.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TsOrDsAdd.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TsOrDsAdd.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TsOrDsAdd.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TsOrDsAdd.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TsOrDsAdd.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TsOrDsAdd.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TsOrDsAdd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TsOrDsAdd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TsOrDsAdd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TsOrDsAdd.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TsOrDsAdd.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TsOrDsAdd.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TsOrDsAdd.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TsOrDsAdd.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TsOrDsAdd.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TsOrDsAdd.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TsOrDsAdd.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="TsOrDsToDateStr">
<input id="TsOrDsToDateStr-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TsOrDsToDateStr</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="TsOrDsToDateStr-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TsOrDsToDateStr"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-4417"><a href="#TsOrDsToDateStr-4417"><span class="linenos">4417</span></a><span class="k">class</span> <span class="nc">TsOrDsToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="TsOrDsToDateStr-4418"><a href="#TsOrDsToDateStr-4418"><span class="linenos">4418</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TsOrDsToDateStr.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TsOrDsToDateStr.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TsOrDsToDateStr.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TsOrDsToDateStr.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TsOrDsToDateStr.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TsOrDsToDateStr.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TsOrDsToDateStr.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TsOrDsToDateStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TsOrDsToDateStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TsOrDsToDateStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TsOrDsToDateStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TsOrDsToDateStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TsOrDsToDateStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TsOrDsToDateStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TsOrDsToDateStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TsOrDsToDateStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TsOrDsToDateStr.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TsOrDsToDateStr.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TsOrDsToDateStr.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TsOrDsToDateStr.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TsOrDsToDateStr.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TsOrDsToDateStr.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TsOrDsToDateStr.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TsOrDsToDateStr.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TsOrDsToDateStr.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TsOrDsToDateStr.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TsOrDsToDateStr.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TsOrDsToDateStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TsOrDsToDateStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TsOrDsToDateStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TsOrDsToDateStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TsOrDsToDateStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TsOrDsToDateStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TsOrDsToDateStr.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TsOrDsToDateStr.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TsOrDsToDateStr.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TsOrDsToDateStr.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TsOrDsToDateStr.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TsOrDsToDateStr.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TsOrDsToDateStr.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TsOrDsToDateStr.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TsOrDsToDateStr.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TsOrDsToDateStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TsOrDsToDateStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TsOrDsToDateStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TsOrDsToDateStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TsOrDsToDateStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TsOrDsToDateStr.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TsOrDsToDateStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TsOrDsToDateStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TsOrDsToDateStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TsOrDsToDateStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TsOrDsToDateStr.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TsOrDsToDateStr.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="TsOrDsToDate">
<input id="TsOrDsToDate-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TsOrDsToDate</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="TsOrDsToDate-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TsOrDsToDate"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDate-4421"><a href="#TsOrDsToDate-4421"><span class="linenos">4421</span></a><span class="k">class</span> <span class="nc">TsOrDsToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="TsOrDsToDate-4422"><a href="#TsOrDsToDate-4422"><span class="linenos">4422</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TsOrDsToDate.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TsOrDsToDate.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TsOrDsToDate.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TsOrDsToDate.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TsOrDsToDate.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TsOrDsToDate.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TsOrDsToDate.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TsOrDsToDate.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TsOrDsToDate.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TsOrDsToDate.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TsOrDsToDate.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TsOrDsToDate.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TsOrDsToDate.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TsOrDsToDate.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TsOrDsToDate.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TsOrDsToDate.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TsOrDsToDate.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TsOrDsToDate.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TsOrDsToDate.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TsOrDsToDate.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TsOrDsToDate.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TsOrDsToDate.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TsOrDsToDate.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TsOrDsToDate.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TsOrDsToDate.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TsOrDsToDate.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TsOrDsToDate.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TsOrDsToDate.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TsOrDsToDate.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TsOrDsToDate.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TsOrDsToDate.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TsOrDsToDate.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TsOrDsToDate.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TsOrDsToDate.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TsOrDsToDate.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TsOrDsToDate.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TsOrDsToDate.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TsOrDsToDate.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TsOrDsToDate.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TsOrDsToDate.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TsOrDsToDate.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TsOrDsToDate.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TsOrDsToDate.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TsOrDsToDate.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TsOrDsToDate.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TsOrDsToDate.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TsOrDsToDate.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TsOrDsToDate.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TsOrDsToDate.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TsOrDsToDate.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TsOrDsToDate.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TsOrDsToDate.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TsOrDsToDate.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TsOrDsToDate.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="TsOrDiToDi">
<input id="TsOrDiToDi-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">TsOrDiToDi</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="TsOrDiToDi-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#TsOrDiToDi"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-4425"><a href="#TsOrDiToDi-4425"><span class="linenos">4425</span></a><span class="k">class</span> <span class="nc">TsOrDiToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="TsOrDiToDi-4426"><a href="#TsOrDiToDi-4426"><span class="linenos">4426</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="TsOrDiToDi.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="TsOrDiToDi.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="TsOrDiToDi.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="TsOrDiToDi.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="TsOrDiToDi.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="TsOrDiToDi.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="TsOrDiToDi.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="TsOrDiToDi.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="TsOrDiToDi.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="TsOrDiToDi.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="TsOrDiToDi.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="TsOrDiToDi.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="TsOrDiToDi.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="TsOrDiToDi.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="TsOrDiToDi.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="TsOrDiToDi.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="TsOrDiToDi.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="TsOrDiToDi.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="TsOrDiToDi.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="TsOrDiToDi.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="TsOrDiToDi.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="TsOrDiToDi.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="TsOrDiToDi.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="TsOrDiToDi.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="TsOrDiToDi.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="TsOrDiToDi.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="TsOrDiToDi.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="TsOrDiToDi.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="TsOrDiToDi.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="TsOrDiToDi.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="TsOrDiToDi.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="TsOrDiToDi.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="TsOrDiToDi.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="TsOrDiToDi.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="TsOrDiToDi.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="TsOrDiToDi.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="TsOrDiToDi.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="TsOrDiToDi.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="TsOrDiToDi.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="TsOrDiToDi.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="TsOrDiToDi.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="TsOrDiToDi.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="TsOrDiToDi.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="TsOrDiToDi.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="TsOrDiToDi.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="TsOrDiToDi.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="TsOrDiToDi.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="TsOrDiToDi.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="TsOrDiToDi.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="TsOrDiToDi.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="TsOrDiToDi.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="TsOrDiToDi.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="TsOrDiToDi.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="TsOrDiToDi.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Unhex">
<input id="Unhex-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Unhex</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Unhex-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Unhex"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-4429"><a href="#Unhex-4429"><span class="linenos">4429</span></a><span class="k">class</span> <span class="nc">Unhex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Unhex-4430"><a href="#Unhex-4430"><span class="linenos">4430</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Unhex.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Unhex.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Unhex.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Unhex.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Unhex.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Unhex.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Unhex.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Unhex.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Unhex.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Unhex.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Unhex.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Unhex.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Unhex.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Unhex.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Unhex.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Unhex.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Unhex.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Unhex.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Unhex.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Unhex.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Unhex.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Unhex.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Unhex.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Unhex.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Unhex.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Unhex.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Unhex.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Unhex.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Unhex.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Unhex.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Unhex.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Unhex.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Unhex.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Unhex.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Unhex.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Unhex.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Unhex.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Unhex.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Unhex.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Unhex.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Unhex.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Unhex.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Unhex.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Unhex.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Unhex.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Unhex.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Unhex.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Unhex.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Unhex.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Unhex.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Unhex.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Unhex.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Unhex.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Unhex.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="UnixToStr">
<input id="UnixToStr-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">UnixToStr</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="UnixToStr-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#UnixToStr"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="UnixToStr-4433"><a href="#UnixToStr-4433"><span class="linenos">4433</span></a><span class="k">class</span> <span class="nc">UnixToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="UnixToStr-4434"><a href="#UnixToStr-4434"><span class="linenos">4434</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;format&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="UnixToStr.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="UnixToStr.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="UnixToStr.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="UnixToStr.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="UnixToStr.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="UnixToStr.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="UnixToStr.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="UnixToStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UnixToStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UnixToStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UnixToStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UnixToStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UnixToStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="UnixToStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UnixToStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UnixToStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="UnixToStr.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="UnixToStr.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="UnixToStr.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="UnixToStr.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="UnixToStr.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="UnixToStr.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="UnixToStr.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="UnixToStr.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="UnixToStr.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="UnixToStr.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="UnixToStr.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="UnixToStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UnixToStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UnixToStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="UnixToStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UnixToStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UnixToStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="UnixToStr.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="UnixToStr.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="UnixToStr.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="UnixToStr.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="UnixToStr.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="UnixToStr.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="UnixToStr.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="UnixToStr.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="UnixToStr.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="UnixToStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="UnixToStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="UnixToStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="UnixToStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="UnixToStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="UnixToStr.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="UnixToStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="UnixToStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="UnixToStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="UnixToStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="UnixToStr.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="UnixToStr.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="UnixToTime">
<input id="UnixToTime-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">UnixToTime</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="UnixToTime-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#UnixToTime"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-4439"><a href="#UnixToTime-4439"><span class="linenos">4439</span></a><span class="k">class</span> <span class="nc">UnixToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="UnixToTime-4440"><a href="#UnixToTime-4440"><span class="linenos">4440</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;scale&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;zone&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;hours&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;minutes&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span><span id="UnixToTime-4441"><a href="#UnixToTime-4441"><span class="linenos">4441</span></a>
</span><span id="UnixToTime-4442"><a href="#UnixToTime-4442"><span class="linenos">4442</span></a> <span class="n">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;seconds&quot;</span><span class="p">)</span>
</span><span id="UnixToTime-4443"><a href="#UnixToTime-4443"><span class="linenos">4443</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;millis&quot;</span><span class="p">)</span>
</span><span id="UnixToTime-4444"><a href="#UnixToTime-4444"><span class="linenos">4444</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">&quot;micros&quot;</span><span class="p">)</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="UnixToTime.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="UnixToTime.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="UnixToTime.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="UnixToTime.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="UnixToTime.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="UnixToTime.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="UnixToTime.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="UnixToTime.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UnixToTime.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UnixToTime.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UnixToTime.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UnixToTime.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UnixToTime.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="UnixToTime.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UnixToTime.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UnixToTime.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="UnixToTime.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="UnixToTime.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="UnixToTime.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="UnixToTime.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="UnixToTime.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="UnixToTime.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="UnixToTime.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="UnixToTime.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="UnixToTime.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="UnixToTime.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="UnixToTime.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="UnixToTime.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UnixToTime.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UnixToTime.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="UnixToTime.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UnixToTime.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UnixToTime.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="UnixToTime.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="UnixToTime.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="UnixToTime.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="UnixToTime.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="UnixToTime.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="UnixToTime.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="UnixToTime.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="UnixToTime.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="UnixToTime.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="UnixToTime.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="UnixToTime.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="UnixToTime.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="UnixToTime.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="UnixToTime.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="UnixToTime.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="UnixToTime.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="UnixToTime.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="UnixToTime.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="UnixToTime.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="UnixToTime.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="UnixToTime.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="UnixToTimeStr">
<input id="UnixToTimeStr-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">UnixToTimeStr</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="UnixToTimeStr-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#UnixToTimeStr"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-4447"><a href="#UnixToTimeStr-4447"><span class="linenos">4447</span></a><span class="k">class</span> <span class="nc">UnixToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="UnixToTimeStr-4448"><a href="#UnixToTimeStr-4448"><span class="linenos">4448</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="UnixToTimeStr.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="UnixToTimeStr.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="UnixToTimeStr.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="UnixToTimeStr.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="UnixToTimeStr.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="UnixToTimeStr.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="UnixToTimeStr.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="UnixToTimeStr.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="UnixToTimeStr.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="UnixToTimeStr.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="UnixToTimeStr.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="UnixToTimeStr.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="UnixToTimeStr.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="UnixToTimeStr.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="UnixToTimeStr.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="UnixToTimeStr.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="UnixToTimeStr.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="UnixToTimeStr.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="UnixToTimeStr.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="UnixToTimeStr.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="UnixToTimeStr.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="UnixToTimeStr.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="UnixToTimeStr.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="UnixToTimeStr.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="UnixToTimeStr.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="UnixToTimeStr.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="UnixToTimeStr.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="UnixToTimeStr.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="UnixToTimeStr.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="UnixToTimeStr.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="UnixToTimeStr.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="UnixToTimeStr.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="UnixToTimeStr.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="UnixToTimeStr.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="UnixToTimeStr.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="UnixToTimeStr.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="UnixToTimeStr.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="UnixToTimeStr.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="UnixToTimeStr.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="UnixToTimeStr.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="UnixToTimeStr.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="UnixToTimeStr.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="UnixToTimeStr.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="UnixToTimeStr.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="UnixToTimeStr.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="UnixToTimeStr.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="UnixToTimeStr.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="UnixToTimeStr.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="UnixToTimeStr.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="UnixToTimeStr.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="UnixToTimeStr.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="UnixToTimeStr.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="UnixToTimeStr.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="UnixToTimeStr.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Upper">
<input id="Upper-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Upper</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Upper-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Upper"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Upper-4451"><a href="#Upper-4451"><span class="linenos">4451</span></a><span class="k">class</span> <span class="nc">Upper</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Upper-4452"><a href="#Upper-4452"><span class="linenos">4452</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;UPPER&quot;</span><span class="p">,</span> <span class="s2">&quot;UCASE&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Upper.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Upper.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Upper.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Upper.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Upper.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Upper.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Upper.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Upper.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Upper.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Upper.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Upper.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Upper.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Upper.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Upper.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Upper.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Upper.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Upper.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Upper.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Upper.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Upper.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Upper.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Upper.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Upper.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Upper.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Upper.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Upper.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Upper.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Upper.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Upper.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Upper.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Upper.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Upper.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Upper.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Upper.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Upper.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Upper.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Upper.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Upper.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Upper.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Upper.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Upper.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Upper.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Upper.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Upper.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Upper.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Upper.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Upper.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Upper.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Upper.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Upper.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Upper.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Upper.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Upper.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Upper.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Variance">
<input id="Variance-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Variance</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="Variance-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Variance"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Variance-4455"><a href="#Variance-4455"><span class="linenos">4455</span></a><span class="k">class</span> <span class="nc">Variance</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="Variance-4456"><a href="#Variance-4456"><span class="linenos">4456</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;VARIANCE&quot;</span><span class="p">,</span> <span class="s2">&quot;VARIANCE_SAMP&quot;</span><span class="p">,</span> <span class="s2">&quot;VAR_SAMP&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Variance.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Variance.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Variance.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Variance.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Variance.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Variance.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Variance.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Variance.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Variance.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Variance.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Variance.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Variance.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Variance.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Variance.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Variance.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Variance.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Variance.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Variance.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Variance.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Variance.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Variance.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Variance.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Variance.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Variance.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Variance.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Variance.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Variance.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Variance.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Variance.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Variance.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Variance.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Variance.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Variance.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Variance.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Variance.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Variance.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Variance.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Variance.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Variance.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Variance.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Variance.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Variance.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Variance.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Variance.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Variance.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Variance.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Variance.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Variance.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Variance.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Variance.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Variance.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Variance.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Variance.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Variance.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="VariancePop">
<input id="VariancePop-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">VariancePop</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>):
<label class="view-source-button" for="VariancePop-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#VariancePop"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="VariancePop-4459"><a href="#VariancePop-4459"><span class="linenos">4459</span></a><span class="k">class</span> <span class="nc">VariancePop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span>
</span><span id="VariancePop-4460"><a href="#VariancePop-4460"><span class="linenos">4460</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;VARIANCE_POP&quot;</span><span class="p">,</span> <span class="s2">&quot;VAR_POP&quot;</span><span class="p">]</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="VariancePop.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="VariancePop.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="VariancePop.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="VariancePop.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="VariancePop.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="VariancePop.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="VariancePop.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="VariancePop.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="VariancePop.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="VariancePop.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="VariancePop.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="VariancePop.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="VariancePop.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="VariancePop.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="VariancePop.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="VariancePop.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="VariancePop.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="VariancePop.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="VariancePop.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="VariancePop.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="VariancePop.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="VariancePop.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="VariancePop.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="VariancePop.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="VariancePop.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="VariancePop.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="VariancePop.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="VariancePop.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="VariancePop.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="VariancePop.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="VariancePop.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="VariancePop.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="VariancePop.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="VariancePop.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="VariancePop.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="VariancePop.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="VariancePop.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="VariancePop.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="VariancePop.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="VariancePop.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="VariancePop.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="VariancePop.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="VariancePop.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="VariancePop.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="VariancePop.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="VariancePop.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="VariancePop.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="VariancePop.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="VariancePop.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="VariancePop.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="VariancePop.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="VariancePop.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="VariancePop.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="VariancePop.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Week">
<input id="Week-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Week</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Week-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Week"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Week-4463"><a href="#Week-4463"><span class="linenos">4463</span></a><span class="k">class</span> <span class="nc">Week</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Week-4464"><a href="#Week-4464"><span class="linenos">4464</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;mode&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Week.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Week.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Week.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Week.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Week.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Week.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Week.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Week.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Week.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Week.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Week.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Week.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Week.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Week.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Week.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Week.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Week.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Week.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Week.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Week.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Week.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Week.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Week.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Week.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Week.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Week.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Week.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Week.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Week.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Week.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Week.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Week.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Week.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Week.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Week.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Week.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Week.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Week.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Week.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Week.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Week.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Week.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Week.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Week.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Week.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Week.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Week.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Week.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Week.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Week.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Week.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Week.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Week.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Week.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="XMLTable">
<input id="XMLTable-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">XMLTable</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="XMLTable-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#XMLTable"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="XMLTable-4467"><a href="#XMLTable-4467"><span class="linenos">4467</span></a><span class="k">class</span> <span class="nc">XMLTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="XMLTable-4468"><a href="#XMLTable-4468"><span class="linenos">4468</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;passing&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;columns&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;by_ref&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="XMLTable.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="XMLTable.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="XMLTable.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="XMLTable.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="XMLTable.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="XMLTable.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="XMLTable.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="XMLTable.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="XMLTable.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="XMLTable.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="XMLTable.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="XMLTable.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="XMLTable.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="XMLTable.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="XMLTable.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="XMLTable.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="XMLTable.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="XMLTable.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="XMLTable.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="XMLTable.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="XMLTable.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="XMLTable.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="XMLTable.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="XMLTable.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="XMLTable.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="XMLTable.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="XMLTable.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="XMLTable.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="XMLTable.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="XMLTable.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="XMLTable.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="XMLTable.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="XMLTable.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="XMLTable.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="XMLTable.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="XMLTable.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="XMLTable.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="XMLTable.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="XMLTable.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="XMLTable.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="XMLTable.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="XMLTable.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="XMLTable.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="XMLTable.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="XMLTable.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="XMLTable.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="XMLTable.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="XMLTable.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="XMLTable.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="XMLTable.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="XMLTable.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="XMLTable.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="XMLTable.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="XMLTable.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Year">
<input id="Year-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Year</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="Year-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Year"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Year-4471"><a href="#Year-4471"><span class="linenos">4471</span></a><span class="k">class</span> <span class="nc">Year</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="Year-4472"><a href="#Year-4472"><span class="linenos">4472</span></a> <span class="k">pass</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Year.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Year.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Year.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Year.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Year.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Year.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Year.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Year.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Year.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Year.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Year.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Year.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Year.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Year.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Year.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Year.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Year.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Year.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Year.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Year.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Year.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Year.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Year.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Year.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Year.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Year.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Year.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Year.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Year.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Year.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Year.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Year.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Year.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Year.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Year.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Year.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Year.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Year.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="Year.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="Year.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="Year.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="Year.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="Year.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="Year.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="Year.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="Year.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="Year.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="Year.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="Year.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="Year.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="Year.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="Year.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="Year.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="Year.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="Use">
<input id="Use-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Use</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Use-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Use"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Use-4475"><a href="#Use-4475"><span class="linenos">4475</span></a><span class="k">class</span> <span class="nc">Use</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Use-4476"><a href="#Use-4476"><span class="linenos">4476</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;kind&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Use.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Use.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Use.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Use.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Use.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Use.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Use.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Use.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Use.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Use.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Use.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Use.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Use.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Use.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Use.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Use.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Use.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Use.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Use.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Use.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Use.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Use.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Use.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Use.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Use.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Use.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Use.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Use.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Use.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Use.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Use.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Use.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Use.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Use.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Use.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Use.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Use.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Use.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="Merge">
<input id="Merge-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">Merge</span><wbr>(<span class="base"><a href="#Expression">Expression</a></span>):
<label class="view-source-button" for="Merge-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#Merge"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="Merge-4479"><a href="#Merge-4479"><span class="linenos">4479</span></a><span class="k">class</span> <span class="nc">Merge</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span>
</span><span id="Merge-4480"><a href="#Merge-4480"><span class="linenos">4480</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;using&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;on&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="Merge.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="Merge.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="Merge.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="Merge.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="Merge.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="Merge.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="Merge.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="Merge.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="Merge.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="Merge.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="Merge.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="Merge.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="Merge.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="Merge.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="Merge.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="Merge.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="Merge.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="Merge.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="Merge.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="Merge.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="Merge.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="Merge.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="Merge.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="Merge.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="Merge.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="Merge.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="Merge.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="Merge.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="Merge.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="Merge.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="Merge.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="Merge.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="Merge.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="Merge.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="Merge.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="Merge.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="Merge.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="Merge.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
</dl>
</div>
</section>
<section id="When">
<input id="When-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">When</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="When-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#When"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="When-4483"><a href="#When-4483"><span class="linenos">4483</span></a><span class="k">class</span> <span class="nc">When</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="When-4484"><a href="#When-4484"><span class="linenos">4484</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;matched&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;source&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;condition&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">&quot;then&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="When.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="When.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="When.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="When.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="When.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="When.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="When.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="When.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="When.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="When.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="When.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="When.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="When.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="When.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="When.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="When.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="When.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="When.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="When.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="When.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="When.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="When.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="When.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="When.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="When.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="When.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="When.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="When.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="When.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="When.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="When.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="When.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="When.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="When.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="When.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="When.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="When.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="When.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="When.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="When.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="When.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="When.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="When.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="When.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="When.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="When.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="When.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="When.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="When.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="When.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="When.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="When.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="When.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="When.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="NextValueFor">
<input id="NextValueFor-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr class">
<span class="def">class</span>
<span class="name">NextValueFor</span><wbr>(<span class="base"><a href="#Func">Func</a></span>):
<label class="view-source-button" for="NextValueFor-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#NextValueFor"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="NextValueFor-4489"><a href="#NextValueFor-4489"><span class="linenos">4489</span></a><span class="k">class</span> <span class="nc">NextValueFor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span>
</span><span id="NextValueFor-4490"><a href="#NextValueFor-4490"><span class="linenos">4490</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;this&quot;</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">&quot;order&quot;</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span>
</span></pre></div>
<div class="inherited">
<h5>Inherited Members</h5>
<dl>
<div><dt><a href="#Expression">Expression</a></dt>
<dd id="NextValueFor.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd>
<dd id="NextValueFor.this" class="variable"><a href="#Expression.this">this</a></dd>
<dd id="NextValueFor.expression" class="variable"><a href="#Expression.expression">expression</a></dd>
<dd id="NextValueFor.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd>
<dd id="NextValueFor.text" class="function"><a href="#Expression.text">text</a></dd>
<dd id="NextValueFor.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd>
<dd id="NextValueFor.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd>
<dd id="NextValueFor.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd>
<dd id="NextValueFor.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd>
<dd id="NextValueFor.alias" class="variable"><a href="#Expression.alias">alias</a></dd>
<dd id="NextValueFor.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd>
<dd id="NextValueFor.copy" class="function"><a href="#Expression.copy">copy</a></dd>
<dd id="NextValueFor.add_comments" class="function"><a href="#Expression.add_comments">add_comments</a></dd>
<dd id="NextValueFor.append" class="function"><a href="#Expression.append">append</a></dd>
<dd id="NextValueFor.set" class="function"><a href="#Expression.set">set</a></dd>
<dd id="NextValueFor.depth" class="variable"><a href="#Expression.depth">depth</a></dd>
<dd id="NextValueFor.iter_expressions" class="function"><a href="#Expression.iter_expressions">iter_expressions</a></dd>
<dd id="NextValueFor.find" class="function"><a href="#Expression.find">find</a></dd>
<dd id="NextValueFor.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd>
<dd id="NextValueFor.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd>
<dd id="NextValueFor.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd>
<dd id="NextValueFor.same_parent" class="variable"><a href="#Expression.same_parent">same_parent</a></dd>
<dd id="NextValueFor.root" class="function"><a href="#Expression.root">root</a></dd>
<dd id="NextValueFor.walk" class="function"><a href="#Expression.walk">walk</a></dd>
<dd id="NextValueFor.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd>
<dd id="NextValueFor.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd>
<dd id="NextValueFor.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd>
<dd id="NextValueFor.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd>
<dd id="NextValueFor.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd>
<dd id="NextValueFor.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd>
<dd id="NextValueFor.sql" class="function"><a href="#Expression.sql">sql</a></dd>
<dd id="NextValueFor.transform" class="function"><a href="#Expression.transform">transform</a></dd>
<dd id="NextValueFor.replace" class="function"><a href="#Expression.replace">replace</a></dd>
<dd id="NextValueFor.pop" class="function"><a href="#Expression.pop">pop</a></dd>
<dd id="NextValueFor.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd>
<dd id="NextValueFor.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd>
<dd id="NextValueFor.dump" class="function"><a href="#Expression.dump">dump</a></dd>
<dd id="NextValueFor.load" class="function"><a href="#Expression.load">load</a></dd>
</div>
<div><dt><a href="#Func">Func</a></dt>
<dd id="NextValueFor.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd>
<dd id="NextValueFor.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd>
<dd id="NextValueFor.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd>
<dd id="NextValueFor.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd>
</div>
<div><dt><a href="#Condition">Condition</a></dt>
<dd id="NextValueFor.and_" class="function"><a href="#Condition.and_">and_</a></dd>
<dd id="NextValueFor.or_" class="function"><a href="#Condition.or_">or_</a></dd>
<dd id="NextValueFor.not_" class="function"><a href="#Condition.not_">not_</a></dd>
<dd id="NextValueFor.as_" class="function"><a href="#Condition.as_">as_</a></dd>
<dd id="NextValueFor.isin" class="function"><a href="#Condition.isin">isin</a></dd>
<dd id="NextValueFor.between" class="function"><a href="#Condition.between">between</a></dd>
<dd id="NextValueFor.is_" class="function"><a href="#Condition.is_">is_</a></dd>
<dd id="NextValueFor.like" class="function"><a href="#Condition.like">like</a></dd>
<dd id="NextValueFor.ilike" class="function"><a href="#Condition.ilike">ilike</a></dd>
<dd id="NextValueFor.eq" class="function"><a href="#Condition.eq">eq</a></dd>
<dd id="NextValueFor.neq" class="function"><a href="#Condition.neq">neq</a></dd>
<dd id="NextValueFor.rlike" class="function"><a href="#Condition.rlike">rlike</a></dd>
</div>
</dl>
</div>
</section>
<section id="maybe_parse">
<input id="maybe_parse-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">maybe_parse</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="o">*</span>,</span><span class="param"> <span class="n">into</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">],</span> <span class="n">Collection</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">prefix</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span>
<label class="view-source-button" for="maybe_parse-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#maybe_parse"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="maybe_parse-4527"><a href="#maybe_parse-4527"><span class="linenos">4527</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span>
</span><span id="maybe_parse-4528"><a href="#maybe_parse-4528"><span class="linenos">4528</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="maybe_parse-4529"><a href="#maybe_parse-4529"><span class="linenos">4529</span></a> <span class="o">*</span><span class="p">,</span>
</span><span id="maybe_parse-4530"><a href="#maybe_parse-4530"><span class="linenos">4530</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">IntoType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="maybe_parse-4531"><a href="#maybe_parse-4531"><span class="linenos">4531</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="maybe_parse-4532"><a href="#maybe_parse-4532"><span class="linenos">4532</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="maybe_parse-4533"><a href="#maybe_parse-4533"><span class="linenos">4533</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="maybe_parse-4534"><a href="#maybe_parse-4534"><span class="linenos">4534</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="maybe_parse-4535"><a href="#maybe_parse-4535"><span class="linenos">4535</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="maybe_parse-4536"><a href="#maybe_parse-4536"><span class="linenos">4536</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Gracefully handle a possible string or expression.</span>
</span><span id="maybe_parse-4537"><a href="#maybe_parse-4537"><span class="linenos">4537</span></a>
</span><span id="maybe_parse-4538"><a href="#maybe_parse-4538"><span class="linenos">4538</span></a><span class="sd"> Example:</span>
</span><span id="maybe_parse-4539"><a href="#maybe_parse-4539"><span class="linenos">4539</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(&quot;1&quot;)</span>
</span><span id="maybe_parse-4540"><a href="#maybe_parse-4540"><span class="linenos">4540</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span>
</span><span id="maybe_parse-4541"><a href="#maybe_parse-4541"><span class="linenos">4541</span></a><span class="sd"> &gt;&gt;&gt; maybe_parse(to_identifier(&quot;x&quot;))</span>
</span><span id="maybe_parse-4542"><a href="#maybe_parse-4542"><span class="linenos">4542</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span>
</span><span id="maybe_parse-4543"><a href="#maybe_parse-4543"><span class="linenos">4543</span></a>
</span><span id="maybe_parse-4544"><a href="#maybe_parse-4544"><span class="linenos">4544</span></a><span class="sd"> Args:</span>
</span><span id="maybe_parse-4545"><a href="#maybe_parse-4545"><span class="linenos">4545</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span>
</span><span id="maybe_parse-4546"><a href="#maybe_parse-4546"><span class="linenos">4546</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span>
</span><span id="maybe_parse-4547"><a href="#maybe_parse-4547"><span class="linenos">4547</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
</span><span id="maybe_parse-4548"><a href="#maybe_parse-4548"><span class="linenos">4548</span></a><span class="sd"> input expression is a SQL string).</span>
</span><span id="maybe_parse-4549"><a href="#maybe_parse-4549"><span class="linenos">4549</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span>
</span><span id="maybe_parse-4550"><a href="#maybe_parse-4550"><span class="linenos">4550</span></a><span class="sd"> (automatically includes a space)</span>
</span><span id="maybe_parse-4551"><a href="#maybe_parse-4551"><span class="linenos">4551</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
</span><span id="maybe_parse-4552"><a href="#maybe_parse-4552"><span class="linenos">4552</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
</span><span id="maybe_parse-4553"><a href="#maybe_parse-4553"><span class="linenos">4553</span></a><span class="sd"> that an input expression is a SQL string).</span>
</span><span id="maybe_parse-4554"><a href="#maybe_parse-4554"><span class="linenos">4554</span></a>
</span><span id="maybe_parse-4555"><a href="#maybe_parse-4555"><span class="linenos">4555</span></a><span class="sd"> Returns:</span>
</span><span id="maybe_parse-4556"><a href="#maybe_parse-4556"><span class="linenos">4556</span></a><span class="sd"> Expression: the parsed or given expression.</span>
</span><span id="maybe_parse-4557"><a href="#maybe_parse-4557"><span class="linenos">4557</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="maybe_parse-4558"><a href="#maybe_parse-4558"><span class="linenos">4558</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="maybe_parse-4559"><a href="#maybe_parse-4559"><span class="linenos">4559</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span>
</span><span id="maybe_parse-4560"><a href="#maybe_parse-4560"><span class="linenos">4560</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
</span><span id="maybe_parse-4561"><a href="#maybe_parse-4561"><span class="linenos">4561</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span>
</span><span id="maybe_parse-4562"><a href="#maybe_parse-4562"><span class="linenos">4562</span></a>
</span><span id="maybe_parse-4563"><a href="#maybe_parse-4563"><span class="linenos">4563</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span>
</span><span id="maybe_parse-4564"><a href="#maybe_parse-4564"><span class="linenos">4564</span></a>
</span><span id="maybe_parse-4565"><a href="#maybe_parse-4565"><span class="linenos">4565</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">)</span>
</span><span id="maybe_parse-4566"><a href="#maybe_parse-4566"><span class="linenos">4566</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span>
</span><span id="maybe_parse-4567"><a href="#maybe_parse-4567"><span class="linenos">4567</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">&quot;</span>
</span><span id="maybe_parse-4568"><a href="#maybe_parse-4568"><span class="linenos">4568</span></a> <span class="k">return</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">parse_one</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Gracefully handle a possible string or expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">maybe_parse</span><span class="p">(</span><span class="s2">&quot;1&quot;</span><span class="p">)</span>
<span class="go">(LITERAL this: 1, is_string: False)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">))</span>
<span class="go">(IDENTIFIER this: x, quoted: False)</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>sql_or_expression:</strong> the SQL code string or an expression</li>
<li><strong>into:</strong> the SQLGlot Expression to parse into</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions (in the case that an
input expression is a SQL string).</li>
<li><strong>prefix:</strong> a string to prefix the sql with before it gets parsed
(automatically includes a space)</li>
<li><strong>copy:</strong> whether or not to copy the expression.</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case
that an input expression is a SQL string).</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Expression: the parsed or given expression.</p>
</blockquote>
</div>
</section>
<section id="union">
<input id="union-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">union</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">left</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">right</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Union">sqlglot.expressions.Union</a></span>:</span></span>
<label class="view-source-button" for="union-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#union"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="union-4752"><a href="#union-4752"><span class="linenos">4752</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span>
</span><span id="union-4753"><a href="#union-4753"><span class="linenos">4753</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="union-4754"><a href="#union-4754"><span class="linenos">4754</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Union</span><span class="p">:</span>
</span><span id="union-4755"><a href="#union-4755"><span class="linenos">4755</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="union-4756"><a href="#union-4756"><span class="linenos">4756</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span>
</span><span id="union-4757"><a href="#union-4757"><span class="linenos">4757</span></a>
</span><span id="union-4758"><a href="#union-4758"><span class="linenos">4758</span></a><span class="sd"> Example:</span>
</span><span id="union-4759"><a href="#union-4759"><span class="linenos">4759</span></a><span class="sd"> &gt;&gt;&gt; union(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="union-4760"><a href="#union-4760"><span class="linenos">4760</span></a><span class="sd"> &#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
</span><span id="union-4761"><a href="#union-4761"><span class="linenos">4761</span></a>
</span><span id="union-4762"><a href="#union-4762"><span class="linenos">4762</span></a><span class="sd"> Args:</span>
</span><span id="union-4763"><a href="#union-4763"><span class="linenos">4763</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
</span><span id="union-4764"><a href="#union-4764"><span class="linenos">4764</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="union-4765"><a href="#union-4765"><span class="linenos">4765</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
</span><span id="union-4766"><a href="#union-4766"><span class="linenos">4766</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="union-4767"><a href="#union-4767"><span class="linenos">4767</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="union-4768"><a href="#union-4768"><span class="linenos">4768</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="union-4769"><a href="#union-4769"><span class="linenos">4769</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="union-4770"><a href="#union-4770"><span class="linenos">4770</span></a>
</span><span id="union-4771"><a href="#union-4771"><span class="linenos">4771</span></a><span class="sd"> Returns:</span>
</span><span id="union-4772"><a href="#union-4772"><span class="linenos">4772</span></a><span class="sd"> The new Union instance.</span>
</span><span id="union-4773"><a href="#union-4773"><span class="linenos">4773</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="union-4774"><a href="#union-4774"><span class="linenos">4774</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="union-4775"><a href="#union-4775"><span class="linenos">4775</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="union-4776"><a href="#union-4776"><span class="linenos">4776</span></a>
</span><span id="union-4777"><a href="#union-4777"><span class="linenos">4777</span></a> <span class="k">return</span> <span class="n">Union</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Initializes a syntax tree from one UNION expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">union</span><span class="p">(</span><span class="s2">&quot;SELECT * FROM foo&quot;</span><span class="p">,</span> <span class="s2">&quot;SELECT * FROM bla&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT * FROM foo UNION SELECT * FROM bla&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>left:</strong> the SQL code string corresponding to the left-hand side.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>right:</strong> the SQL code string corresponding to the right-hand side.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>distinct:</strong> set the DISTINCT flag if and only if this is true.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new Union instance.</p>
</blockquote>
</div>
</section>
<section id="intersect">
<input id="intersect-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">intersect</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">left</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">right</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Intersect">sqlglot.expressions.Intersect</a></span>:</span></span>
<label class="view-source-button" for="intersect-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#intersect"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="intersect-4780"><a href="#intersect-4780"><span class="linenos">4780</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span>
</span><span id="intersect-4781"><a href="#intersect-4781"><span class="linenos">4781</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="intersect-4782"><a href="#intersect-4782"><span class="linenos">4782</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Intersect</span><span class="p">:</span>
</span><span id="intersect-4783"><a href="#intersect-4783"><span class="linenos">4783</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="intersect-4784"><a href="#intersect-4784"><span class="linenos">4784</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span>
</span><span id="intersect-4785"><a href="#intersect-4785"><span class="linenos">4785</span></a>
</span><span id="intersect-4786"><a href="#intersect-4786"><span class="linenos">4786</span></a><span class="sd"> Example:</span>
</span><span id="intersect-4787"><a href="#intersect-4787"><span class="linenos">4787</span></a><span class="sd"> &gt;&gt;&gt; intersect(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="intersect-4788"><a href="#intersect-4788"><span class="linenos">4788</span></a><span class="sd"> &#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
</span><span id="intersect-4789"><a href="#intersect-4789"><span class="linenos">4789</span></a>
</span><span id="intersect-4790"><a href="#intersect-4790"><span class="linenos">4790</span></a><span class="sd"> Args:</span>
</span><span id="intersect-4791"><a href="#intersect-4791"><span class="linenos">4791</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
</span><span id="intersect-4792"><a href="#intersect-4792"><span class="linenos">4792</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="intersect-4793"><a href="#intersect-4793"><span class="linenos">4793</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
</span><span id="intersect-4794"><a href="#intersect-4794"><span class="linenos">4794</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="intersect-4795"><a href="#intersect-4795"><span class="linenos">4795</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="intersect-4796"><a href="#intersect-4796"><span class="linenos">4796</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="intersect-4797"><a href="#intersect-4797"><span class="linenos">4797</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="intersect-4798"><a href="#intersect-4798"><span class="linenos">4798</span></a>
</span><span id="intersect-4799"><a href="#intersect-4799"><span class="linenos">4799</span></a><span class="sd"> Returns:</span>
</span><span id="intersect-4800"><a href="#intersect-4800"><span class="linenos">4800</span></a><span class="sd"> The new Intersect instance.</span>
</span><span id="intersect-4801"><a href="#intersect-4801"><span class="linenos">4801</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="intersect-4802"><a href="#intersect-4802"><span class="linenos">4802</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="intersect-4803"><a href="#intersect-4803"><span class="linenos">4803</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="intersect-4804"><a href="#intersect-4804"><span class="linenos">4804</span></a>
</span><span id="intersect-4805"><a href="#intersect-4805"><span class="linenos">4805</span></a> <span class="k">return</span> <span class="n">Intersect</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Initializes a syntax tree from one INTERSECT expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">intersect</span><span class="p">(</span><span class="s2">&quot;SELECT * FROM foo&quot;</span><span class="p">,</span> <span class="s2">&quot;SELECT * FROM bla&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT * FROM foo INTERSECT SELECT * FROM bla&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>left:</strong> the SQL code string corresponding to the left-hand side.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>right:</strong> the SQL code string corresponding to the right-hand side.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>distinct:</strong> set the DISTINCT flag if and only if this is true.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new Intersect instance.</p>
</blockquote>
</div>
</section>
<section id="except_">
<input id="except_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">except_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">left</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">right</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Except">sqlglot.expressions.Except</a></span>:</span></span>
<label class="view-source-button" for="except_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#except_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="except_-4808"><a href="#except_-4808"><span class="linenos">4808</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span>
</span><span id="except_-4809"><a href="#except_-4809"><span class="linenos">4809</span></a> <span class="n">left</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">distinct</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="except_-4810"><a href="#except_-4810"><span class="linenos">4810</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Except</span><span class="p">:</span>
</span><span id="except_-4811"><a href="#except_-4811"><span class="linenos">4811</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="except_-4812"><a href="#except_-4812"><span class="linenos">4812</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span>
</span><span id="except_-4813"><a href="#except_-4813"><span class="linenos">4813</span></a>
</span><span id="except_-4814"><a href="#except_-4814"><span class="linenos">4814</span></a><span class="sd"> Example:</span>
</span><span id="except_-4815"><a href="#except_-4815"><span class="linenos">4815</span></a><span class="sd"> &gt;&gt;&gt; except_(&quot;SELECT * FROM foo&quot;, &quot;SELECT * FROM bla&quot;).sql()</span>
</span><span id="except_-4816"><a href="#except_-4816"><span class="linenos">4816</span></a><span class="sd"> &#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
</span><span id="except_-4817"><a href="#except_-4817"><span class="linenos">4817</span></a>
</span><span id="except_-4818"><a href="#except_-4818"><span class="linenos">4818</span></a><span class="sd"> Args:</span>
</span><span id="except_-4819"><a href="#except_-4819"><span class="linenos">4819</span></a><span class="sd"> left: the SQL code string corresponding to the left-hand side.</span>
</span><span id="except_-4820"><a href="#except_-4820"><span class="linenos">4820</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="except_-4821"><a href="#except_-4821"><span class="linenos">4821</span></a><span class="sd"> right: the SQL code string corresponding to the right-hand side.</span>
</span><span id="except_-4822"><a href="#except_-4822"><span class="linenos">4822</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span>
</span><span id="except_-4823"><a href="#except_-4823"><span class="linenos">4823</span></a><span class="sd"> distinct: set the DISTINCT flag if and only if this is true.</span>
</span><span id="except_-4824"><a href="#except_-4824"><span class="linenos">4824</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="except_-4825"><a href="#except_-4825"><span class="linenos">4825</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span>
</span><span id="except_-4826"><a href="#except_-4826"><span class="linenos">4826</span></a>
</span><span id="except_-4827"><a href="#except_-4827"><span class="linenos">4827</span></a><span class="sd"> Returns:</span>
</span><span id="except_-4828"><a href="#except_-4828"><span class="linenos">4828</span></a><span class="sd"> The new Except instance.</span>
</span><span id="except_-4829"><a href="#except_-4829"><span class="linenos">4829</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="except_-4830"><a href="#except_-4830"><span class="linenos">4830</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="except_-4831"><a href="#except_-4831"><span class="linenos">4831</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="except_-4832"><a href="#except_-4832"><span class="linenos">4832</span></a>
</span><span id="except_-4833"><a href="#except_-4833"><span class="linenos">4833</span></a> <span class="k">return</span> <span class="n">Except</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Initializes a syntax tree from one EXCEPT expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">except_</span><span class="p">(</span><span class="s2">&quot;SELECT * FROM foo&quot;</span><span class="p">,</span> <span class="s2">&quot;SELECT * FROM bla&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT * FROM foo EXCEPT SELECT * FROM bla&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>left:</strong> the SQL code string corresponding to the left-hand side.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>right:</strong> the SQL code string corresponding to the right-hand side.
If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li>
<li><strong>distinct:</strong> set the DISTINCT flag if and only if this is true.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new Except instance.</p>
</blockquote>
</div>
</section>
<section id="select">
<input id="select-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">select</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="select-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#select"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="select-4836"><a href="#select-4836"><span class="linenos">4836</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="select-4837"><a href="#select-4837"><span class="linenos">4837</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="select-4838"><a href="#select-4838"><span class="linenos">4838</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span>
</span><span id="select-4839"><a href="#select-4839"><span class="linenos">4839</span></a>
</span><span id="select-4840"><a href="#select-4840"><span class="linenos">4840</span></a><span class="sd"> Example:</span>
</span><span id="select-4841"><a href="#select-4841"><span class="linenos">4841</span></a><span class="sd"> &gt;&gt;&gt; select(&quot;col1&quot;, &quot;col2&quot;).from_(&quot;tbl&quot;).sql()</span>
</span><span id="select-4842"><a href="#select-4842"><span class="linenos">4842</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
</span><span id="select-4843"><a href="#select-4843"><span class="linenos">4843</span></a>
</span><span id="select-4844"><a href="#select-4844"><span class="linenos">4844</span></a><span class="sd"> Args:</span>
</span><span id="select-4845"><a href="#select-4845"><span class="linenos">4845</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span>
</span><span id="select-4846"><a href="#select-4846"><span class="linenos">4846</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
</span><span id="select-4847"><a href="#select-4847"><span class="linenos">4847</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span>
</span><span id="select-4848"><a href="#select-4848"><span class="linenos">4848</span></a><span class="sd"> input expression is a SQL string).</span>
</span><span id="select-4849"><a href="#select-4849"><span class="linenos">4849</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
</span><span id="select-4850"><a href="#select-4850"><span class="linenos">4850</span></a><span class="sd"> that an input expression is a SQL string).</span>
</span><span id="select-4851"><a href="#select-4851"><span class="linenos">4851</span></a>
</span><span id="select-4852"><a href="#select-4852"><span class="linenos">4852</span></a><span class="sd"> Returns:</span>
</span><span id="select-4853"><a href="#select-4853"><span class="linenos">4853</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
</span><span id="select-4854"><a href="#select-4854"><span class="linenos">4854</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="select-4855"><a href="#select-4855"><span class="linenos">4855</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Initializes a syntax tree from one or multiple SELECT expressions.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;col1&quot;</span><span class="p">,</span> <span class="s2">&quot;col2&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT col1, col2 FROM tbl&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code string to parse as the expressions of a
SELECT statement. If an Expression instance is passed, this is used as-is.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions (in the case that an
input expression is a SQL string).</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case
that an input expression is a SQL string).</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Select: the syntax tree for the SELECT statement.</p>
</blockquote>
</div>
</section>
<section id="from_">
<input id="from_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">from_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="from_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#from_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="from_-4858"><a href="#from_-4858"><span class="linenos">4858</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="from_-4859"><a href="#from_-4859"><span class="linenos">4859</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="from_-4860"><a href="#from_-4860"><span class="linenos">4860</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span>
</span><span id="from_-4861"><a href="#from_-4861"><span class="linenos">4861</span></a>
</span><span id="from_-4862"><a href="#from_-4862"><span class="linenos">4862</span></a><span class="sd"> Example:</span>
</span><span id="from_-4863"><a href="#from_-4863"><span class="linenos">4863</span></a><span class="sd"> &gt;&gt;&gt; from_(&quot;tbl&quot;).select(&quot;col1&quot;, &quot;col2&quot;).sql()</span>
</span><span id="from_-4864"><a href="#from_-4864"><span class="linenos">4864</span></a><span class="sd"> &#39;SELECT col1, col2 FROM tbl&#39;</span>
</span><span id="from_-4865"><a href="#from_-4865"><span class="linenos">4865</span></a>
</span><span id="from_-4866"><a href="#from_-4866"><span class="linenos">4866</span></a><span class="sd"> Args:</span>
</span><span id="from_-4867"><a href="#from_-4867"><span class="linenos">4867</span></a><span class="sd"> *expression: the SQL code string to parse as the FROM expressions of a</span>
</span><span id="from_-4868"><a href="#from_-4868"><span class="linenos">4868</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span>
</span><span id="from_-4869"><a href="#from_-4869"><span class="linenos">4869</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
</span><span id="from_-4870"><a href="#from_-4870"><span class="linenos">4870</span></a><span class="sd"> input expression is a SQL string).</span>
</span><span id="from_-4871"><a href="#from_-4871"><span class="linenos">4871</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
</span><span id="from_-4872"><a href="#from_-4872"><span class="linenos">4872</span></a><span class="sd"> that the input expression is a SQL string).</span>
</span><span id="from_-4873"><a href="#from_-4873"><span class="linenos">4873</span></a>
</span><span id="from_-4874"><a href="#from_-4874"><span class="linenos">4874</span></a><span class="sd"> Returns:</span>
</span><span id="from_-4875"><a href="#from_-4875"><span class="linenos">4875</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span>
</span><span id="from_-4876"><a href="#from_-4876"><span class="linenos">4876</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="from_-4877"><a href="#from_-4877"><span class="linenos">4877</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Initializes a syntax tree from a FROM expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;col1&quot;</span><span class="p">,</span> <span class="s2">&quot;col2&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT col1, col2 FROM tbl&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expression:</strong> the SQL code string to parse as the FROM expressions of a
SELECT statement. If an Expression instance is passed, this is used as-is.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression (in the case that the
input expression is a SQL string).</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case
that the input expression is a SQL string).</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Select: the syntax tree for the SELECT statement.</p>
</blockquote>
</div>
</section>
<section id="update">
<input id="update-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">update</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Table">sqlglot.expressions.Table</a></span>,</span><span class="param"> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span>,</span><span class="param"> <span class="n">where</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">from_</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Update">sqlglot.expressions.Update</a></span>:</span></span>
<label class="view-source-button" for="update-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#update"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="update-4880"><a href="#update-4880"><span class="linenos">4880</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span>
</span><span id="update-4881"><a href="#update-4881"><span class="linenos">4881</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span>
</span><span id="update-4882"><a href="#update-4882"><span class="linenos">4882</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span>
</span><span id="update-4883"><a href="#update-4883"><span class="linenos">4883</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="update-4884"><a href="#update-4884"><span class="linenos">4884</span></a> <span class="n">from_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="update-4885"><a href="#update-4885"><span class="linenos">4885</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="update-4886"><a href="#update-4886"><span class="linenos">4886</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="update-4887"><a href="#update-4887"><span class="linenos">4887</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Update</span><span class="p">:</span>
</span><span id="update-4888"><a href="#update-4888"><span class="linenos">4888</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="update-4889"><a href="#update-4889"><span class="linenos">4889</span></a><span class="sd"> Creates an update statement.</span>
</span><span id="update-4890"><a href="#update-4890"><span class="linenos">4890</span></a>
</span><span id="update-4891"><a href="#update-4891"><span class="linenos">4891</span></a><span class="sd"> Example:</span>
</span><span id="update-4892"><a href="#update-4892"><span class="linenos">4892</span></a><span class="sd"> &gt;&gt;&gt; update(&quot;my_table&quot;, {&quot;x&quot;: 1, &quot;y&quot;: &quot;2&quot;, &quot;z&quot;: None}, from_=&quot;baz&quot;, where=&quot;id &gt; 1&quot;).sql()</span>
</span><span id="update-4893"><a href="#update-4893"><span class="linenos">4893</span></a><span class="sd"> &quot;UPDATE my_table SET x = 1, y = &#39;2&#39;, z = NULL FROM baz WHERE id &gt; 1&quot;</span>
</span><span id="update-4894"><a href="#update-4894"><span class="linenos">4894</span></a>
</span><span id="update-4895"><a href="#update-4895"><span class="linenos">4895</span></a><span class="sd"> Args:</span>
</span><span id="update-4896"><a href="#update-4896"><span class="linenos">4896</span></a><span class="sd"> *properties: dictionary of properties to set which are</span>
</span><span id="update-4897"><a href="#update-4897"><span class="linenos">4897</span></a><span class="sd"> auto converted to sql objects eg None -&gt; NULL</span>
</span><span id="update-4898"><a href="#update-4898"><span class="linenos">4898</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
</span><span id="update-4899"><a href="#update-4899"><span class="linenos">4899</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span>
</span><span id="update-4900"><a href="#update-4900"><span class="linenos">4900</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="update-4901"><a href="#update-4901"><span class="linenos">4901</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="update-4902"><a href="#update-4902"><span class="linenos">4902</span></a>
</span><span id="update-4903"><a href="#update-4903"><span class="linenos">4903</span></a><span class="sd"> Returns:</span>
</span><span id="update-4904"><a href="#update-4904"><span class="linenos">4904</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span>
</span><span id="update-4905"><a href="#update-4905"><span class="linenos">4905</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="update-4906"><a href="#update-4906"><span class="linenos">4906</span></a> <span class="n">update_expr</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span>
</span><span id="update-4907"><a href="#update-4907"><span class="linenos">4907</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
</span><span id="update-4908"><a href="#update-4908"><span class="linenos">4908</span></a> <span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
</span><span id="update-4909"><a href="#update-4909"><span class="linenos">4909</span></a> <span class="p">[</span>
</span><span id="update-4910"><a href="#update-4910"><span class="linenos">4910</span></a> <span class="n">EQ</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">))</span>
</span><span id="update-4911"><a href="#update-4911"><span class="linenos">4911</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">items</span><span class="p">()</span>
</span><span id="update-4912"><a href="#update-4912"><span class="linenos">4912</span></a> <span class="p">],</span>
</span><span id="update-4913"><a href="#update-4913"><span class="linenos">4913</span></a> <span class="p">)</span>
</span><span id="update-4914"><a href="#update-4914"><span class="linenos">4914</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span>
</span><span id="update-4915"><a href="#update-4915"><span class="linenos">4915</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
</span><span id="update-4916"><a href="#update-4916"><span class="linenos">4916</span></a> <span class="s2">&quot;from&quot;</span><span class="p">,</span>
</span><span id="update-4917"><a href="#update-4917"><span class="linenos">4917</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">from_</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;FROM&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="update-4918"><a href="#update-4918"><span class="linenos">4918</span></a> <span class="p">)</span>
</span><span id="update-4919"><a href="#update-4919"><span class="linenos">4919</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span>
</span><span id="update-4920"><a href="#update-4920"><span class="linenos">4920</span></a> <span class="n">where</span> <span class="o">=</span> <span class="n">Where</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">where</span><span class="p">)</span>
</span><span id="update-4921"><a href="#update-4921"><span class="linenos">4921</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
</span><span id="update-4922"><a href="#update-4922"><span class="linenos">4922</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span>
</span><span id="update-4923"><a href="#update-4923"><span class="linenos">4923</span></a> <span class="s2">&quot;where&quot;</span><span class="p">,</span>
</span><span id="update-4924"><a href="#update-4924"><span class="linenos">4924</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;WHERE&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span>
</span><span id="update-4925"><a href="#update-4925"><span class="linenos">4925</span></a> <span class="p">)</span>
</span><span id="update-4926"><a href="#update-4926"><span class="linenos">4926</span></a> <span class="k">return</span> <span class="n">update_expr</span>
</span></pre></div>
<div class="docstring"><p>Creates an update statement.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">update</span><span class="p">(</span><span class="s2">&quot;my_table&quot;</span><span class="p">,</span> <span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="s2">&quot;2&quot;</span><span class="p">,</span> <span class="s2">&quot;z&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">},</span> <span class="n">from_</span><span class="o">=</span><span class="s2">&quot;baz&quot;</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="s2">&quot;id &gt; 1&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&quot;UPDATE my_table SET x = 1, y = &#39;2&#39;, z = NULL FROM baz WHERE id &gt; 1&quot;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*properties:</strong> dictionary of properties to set which are
auto converted to sql objects eg None -> NULL</li>
<li><strong>where:</strong> sql conditional parsed into a WHERE statement</li>
<li><strong>from_:</strong> sql statement parsed into a FROM statement</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Update: the syntax tree for the UPDATE statement.</p>
</blockquote>
</div>
</section>
<section id="delete">
<input id="delete-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">delete</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">table</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">where</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">returning</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Delete">sqlglot.expressions.Delete</a></span>:</span></span>
<label class="view-source-button" for="delete-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#delete"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="delete-4929"><a href="#delete-4929"><span class="linenos">4929</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span>
</span><span id="delete-4930"><a href="#delete-4930"><span class="linenos">4930</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="delete-4931"><a href="#delete-4931"><span class="linenos">4931</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="delete-4932"><a href="#delete-4932"><span class="linenos">4932</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="delete-4933"><a href="#delete-4933"><span class="linenos">4933</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="delete-4934"><a href="#delete-4934"><span class="linenos">4934</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="delete-4935"><a href="#delete-4935"><span class="linenos">4935</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Delete</span><span class="p">:</span>
</span><span id="delete-4936"><a href="#delete-4936"><span class="linenos">4936</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="delete-4937"><a href="#delete-4937"><span class="linenos">4937</span></a><span class="sd"> Builds a delete statement.</span>
</span><span id="delete-4938"><a href="#delete-4938"><span class="linenos">4938</span></a>
</span><span id="delete-4939"><a href="#delete-4939"><span class="linenos">4939</span></a><span class="sd"> Example:</span>
</span><span id="delete-4940"><a href="#delete-4940"><span class="linenos">4940</span></a><span class="sd"> &gt;&gt;&gt; delete(&quot;my_table&quot;, where=&quot;id &gt; 1&quot;).sql()</span>
</span><span id="delete-4941"><a href="#delete-4941"><span class="linenos">4941</span></a><span class="sd"> &#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
</span><span id="delete-4942"><a href="#delete-4942"><span class="linenos">4942</span></a>
</span><span id="delete-4943"><a href="#delete-4943"><span class="linenos">4943</span></a><span class="sd"> Args:</span>
</span><span id="delete-4944"><a href="#delete-4944"><span class="linenos">4944</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span>
</span><span id="delete-4945"><a href="#delete-4945"><span class="linenos">4945</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span>
</span><span id="delete-4946"><a href="#delete-4946"><span class="linenos">4946</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="delete-4947"><a href="#delete-4947"><span class="linenos">4947</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="delete-4948"><a href="#delete-4948"><span class="linenos">4948</span></a>
</span><span id="delete-4949"><a href="#delete-4949"><span class="linenos">4949</span></a><span class="sd"> Returns:</span>
</span><span id="delete-4950"><a href="#delete-4950"><span class="linenos">4950</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span>
</span><span id="delete-4951"><a href="#delete-4951"><span class="linenos">4951</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="delete-4952"><a href="#delete-4952"><span class="linenos">4952</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">Delete</span><span class="p">()</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="delete-4953"><a href="#delete-4953"><span class="linenos">4953</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span>
</span><span id="delete-4954"><a href="#delete-4954"><span class="linenos">4954</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="delete-4955"><a href="#delete-4955"><span class="linenos">4955</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span>
</span><span id="delete-4956"><a href="#delete-4956"><span class="linenos">4956</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="delete-4957"><a href="#delete-4957"><span class="linenos">4957</span></a> <span class="k">return</span> <span class="n">delete_expr</span>
</span></pre></div>
<div class="docstring"><p>Builds a delete statement.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">delete</span><span class="p">(</span><span class="s2">&quot;my_table&quot;</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="s2">&quot;id &gt; 1&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;DELETE FROM my_table WHERE id &gt; 1&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>where:</strong> sql conditional parsed into a WHERE statement</li>
<li><strong>returning:</strong> sql conditional parsed into a RETURNING statement</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Delete: the syntax tree for the DELETE statement.</p>
</blockquote>
</div>
</section>
<section id="insert">
<input id="insert-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">insert</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">into</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">columns</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Sequence</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">overwrite</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Insert">sqlglot.expressions.Insert</a></span>:</span></span>
<label class="view-source-button" for="insert-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#insert"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="insert-4960"><a href="#insert-4960"><span class="linenos">4960</span></a><span class="k">def</span> <span class="nf">insert</span><span class="p">(</span>
</span><span id="insert-4961"><a href="#insert-4961"><span class="linenos">4961</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="insert-4962"><a href="#insert-4962"><span class="linenos">4962</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="insert-4963"><a href="#insert-4963"><span class="linenos">4963</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="insert-4964"><a href="#insert-4964"><span class="linenos">4964</span></a> <span class="n">overwrite</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="insert-4965"><a href="#insert-4965"><span class="linenos">4965</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="insert-4966"><a href="#insert-4966"><span class="linenos">4966</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="insert-4967"><a href="#insert-4967"><span class="linenos">4967</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="insert-4968"><a href="#insert-4968"><span class="linenos">4968</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Insert</span><span class="p">:</span>
</span><span id="insert-4969"><a href="#insert-4969"><span class="linenos">4969</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="insert-4970"><a href="#insert-4970"><span class="linenos">4970</span></a><span class="sd"> Builds an INSERT statement.</span>
</span><span id="insert-4971"><a href="#insert-4971"><span class="linenos">4971</span></a>
</span><span id="insert-4972"><a href="#insert-4972"><span class="linenos">4972</span></a><span class="sd"> Example:</span>
</span><span id="insert-4973"><a href="#insert-4973"><span class="linenos">4973</span></a><span class="sd"> &gt;&gt;&gt; insert(&quot;VALUES (1, 2, 3)&quot;, &quot;tbl&quot;).sql()</span>
</span><span id="insert-4974"><a href="#insert-4974"><span class="linenos">4974</span></a><span class="sd"> &#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
</span><span id="insert-4975"><a href="#insert-4975"><span class="linenos">4975</span></a>
</span><span id="insert-4976"><a href="#insert-4976"><span class="linenos">4976</span></a><span class="sd"> Args:</span>
</span><span id="insert-4977"><a href="#insert-4977"><span class="linenos">4977</span></a><span class="sd"> expression: the sql string or expression of the INSERT statement</span>
</span><span id="insert-4978"><a href="#insert-4978"><span class="linenos">4978</span></a><span class="sd"> into: the tbl to insert data to.</span>
</span><span id="insert-4979"><a href="#insert-4979"><span class="linenos">4979</span></a><span class="sd"> columns: optionally the table&#39;s column names.</span>
</span><span id="insert-4980"><a href="#insert-4980"><span class="linenos">4980</span></a><span class="sd"> overwrite: whether to INSERT OVERWRITE or not.</span>
</span><span id="insert-4981"><a href="#insert-4981"><span class="linenos">4981</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span>
</span><span id="insert-4982"><a href="#insert-4982"><span class="linenos">4982</span></a><span class="sd"> copy: whether or not to copy the expression.</span>
</span><span id="insert-4983"><a href="#insert-4983"><span class="linenos">4983</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="insert-4984"><a href="#insert-4984"><span class="linenos">4984</span></a>
</span><span id="insert-4985"><a href="#insert-4985"><span class="linenos">4985</span></a><span class="sd"> Returns:</span>
</span><span id="insert-4986"><a href="#insert-4986"><span class="linenos">4986</span></a><span class="sd"> Insert: the syntax tree for the INSERT statement.</span>
</span><span id="insert-4987"><a href="#insert-4987"><span class="linenos">4987</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="insert-4988"><a href="#insert-4988"><span class="linenos">4988</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="insert-4989"><a href="#insert-4989"><span class="linenos">4989</span></a> <span class="n">this</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="n">Schema</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">into</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="insert-4990"><a href="#insert-4990"><span class="linenos">4990</span></a>
</span><span id="insert-4991"><a href="#insert-4991"><span class="linenos">4991</span></a> <span class="k">if</span> <span class="n">columns</span><span class="p">:</span>
</span><span id="insert-4992"><a href="#insert-4992"><span class="linenos">4992</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span>
</span><span id="insert-4993"><a href="#insert-4993"><span class="linenos">4993</span></a> <span class="o">*</span><span class="n">columns</span><span class="p">,</span>
</span><span id="insert-4994"><a href="#insert-4994"><span class="linenos">4994</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">Schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">),</span>
</span><span id="insert-4995"><a href="#insert-4995"><span class="linenos">4995</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">&quot;expressions&quot;</span><span class="p">,</span>
</span><span id="insert-4996"><a href="#insert-4996"><span class="linenos">4996</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Identifier</span><span class="p">,</span>
</span><span id="insert-4997"><a href="#insert-4997"><span class="linenos">4997</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
</span><span id="insert-4998"><a href="#insert-4998"><span class="linenos">4998</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="insert-4999"><a href="#insert-4999"><span class="linenos">4999</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="insert-5000"><a href="#insert-5000"><span class="linenos">5000</span></a> <span class="p">)</span>
</span><span id="insert-5001"><a href="#insert-5001"><span class="linenos">5001</span></a>
</span><span id="insert-5002"><a href="#insert-5002"><span class="linenos">5002</span></a> <span class="k">return</span> <span class="n">Insert</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expr</span><span class="p">,</span> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Builds an INSERT statement.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">insert</span><span class="p">(</span><span class="s2">&quot;VALUES (1, 2, 3)&quot;</span><span class="p">,</span> <span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;INSERT INTO tbl VALUES (1, 2, 3)&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> the sql string or expression of the INSERT statement</li>
<li><strong>into:</strong> the tbl to insert data to.</li>
<li><strong>columns:</strong> optionally the table's column names.</li>
<li><strong>overwrite:</strong> whether to INSERT OVERWRITE or not.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>
<li><strong>copy:</strong> whether or not to copy the expression.</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Insert: the syntax tree for the INSERT statement.</p>
</blockquote>
</div>
</section>
<section id="condition">
<input id="condition-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">condition</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Condition">sqlglot.expressions.Condition</a></span>:</span></span>
<label class="view-source-button" for="condition-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#condition"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="condition-5005"><a href="#condition-5005"><span class="linenos">5005</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span>
</span><span id="condition-5006"><a href="#condition-5006"><span class="linenos">5006</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="condition-5007"><a href="#condition-5007"><span class="linenos">5007</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
</span><span id="condition-5008"><a href="#condition-5008"><span class="linenos">5008</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="condition-5009"><a href="#condition-5009"><span class="linenos">5009</span></a><span class="sd"> Initialize a logical condition expression.</span>
</span><span id="condition-5010"><a href="#condition-5010"><span class="linenos">5010</span></a>
</span><span id="condition-5011"><a href="#condition-5011"><span class="linenos">5011</span></a><span class="sd"> Example:</span>
</span><span id="condition-5012"><a href="#condition-5012"><span class="linenos">5012</span></a><span class="sd"> &gt;&gt;&gt; condition(&quot;x=1&quot;).sql()</span>
</span><span id="condition-5013"><a href="#condition-5013"><span class="linenos">5013</span></a><span class="sd"> &#39;x = 1&#39;</span>
</span><span id="condition-5014"><a href="#condition-5014"><span class="linenos">5014</span></a>
</span><span id="condition-5015"><a href="#condition-5015"><span class="linenos">5015</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span>
</span><span id="condition-5016"><a href="#condition-5016"><span class="linenos">5016</span></a><span class="sd"> &gt;&gt;&gt; where = condition(&quot;x=1&quot;)</span>
</span><span id="condition-5017"><a href="#condition-5017"><span class="linenos">5017</span></a><span class="sd"> &gt;&gt;&gt; where = where.and_(&quot;y=1&quot;)</span>
</span><span id="condition-5018"><a href="#condition-5018"><span class="linenos">5018</span></a><span class="sd"> &gt;&gt;&gt; Select().from_(&quot;tbl&quot;).select(&quot;*&quot;).where(where).sql()</span>
</span><span id="condition-5019"><a href="#condition-5019"><span class="linenos">5019</span></a><span class="sd"> &#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
</span><span id="condition-5020"><a href="#condition-5020"><span class="linenos">5020</span></a>
</span><span id="condition-5021"><a href="#condition-5021"><span class="linenos">5021</span></a><span class="sd"> Args:</span>
</span><span id="condition-5022"><a href="#condition-5022"><span class="linenos">5022</span></a><span class="sd"> *expression: the SQL code string to parse.</span>
</span><span id="condition-5023"><a href="#condition-5023"><span class="linenos">5023</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="condition-5024"><a href="#condition-5024"><span class="linenos">5024</span></a><span class="sd"> dialect: the dialect used to parse the input expression (in the case that the</span>
</span><span id="condition-5025"><a href="#condition-5025"><span class="linenos">5025</span></a><span class="sd"> input expression is a SQL string).</span>
</span><span id="condition-5026"><a href="#condition-5026"><span class="linenos">5026</span></a><span class="sd"> copy: Whether or not to copy `expression` (only applies to expressions).</span>
</span><span id="condition-5027"><a href="#condition-5027"><span class="linenos">5027</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span>
</span><span id="condition-5028"><a href="#condition-5028"><span class="linenos">5028</span></a><span class="sd"> that the input expression is a SQL string).</span>
</span><span id="condition-5029"><a href="#condition-5029"><span class="linenos">5029</span></a>
</span><span id="condition-5030"><a href="#condition-5030"><span class="linenos">5030</span></a><span class="sd"> Returns:</span>
</span><span id="condition-5031"><a href="#condition-5031"><span class="linenos">5031</span></a><span class="sd"> The new Condition instance</span>
</span><span id="condition-5032"><a href="#condition-5032"><span class="linenos">5032</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="condition-5033"><a href="#condition-5033"><span class="linenos">5033</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span>
</span><span id="condition-5034"><a href="#condition-5034"><span class="linenos">5034</span></a> <span class="n">expression</span><span class="p">,</span>
</span><span id="condition-5035"><a href="#condition-5035"><span class="linenos">5035</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span>
</span><span id="condition-5036"><a href="#condition-5036"><span class="linenos">5036</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="condition-5037"><a href="#condition-5037"><span class="linenos">5037</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="condition-5038"><a href="#condition-5038"><span class="linenos">5038</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="condition-5039"><a href="#condition-5039"><span class="linenos">5039</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Initialize a logical condition expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">condition</span><span class="p">(</span><span class="s2">&quot;x=1&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;x = 1&#39;</span>
</code></pre>
</div>
<p>This is helpful for composing larger logical syntax trees:</p>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">where</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span><span class="s2">&quot;x=1&quot;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">where</span> <span class="o">=</span> <span class="n">where</span><span class="o">.</span><span class="n">and_</span><span class="p">(</span><span class="s2">&quot;y=1&quot;</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="s2">&quot;tbl&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s2">&quot;*&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">where</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT * FROM tbl WHERE x = 1 AND y = 1&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expression:</strong> the SQL code string to parse.
If an Expression instance is passed, this is used as-is.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression (in the case that the
input expression is a SQL string).</li>
<li><strong>copy:</strong> Whether or not to copy <code>expression</code> (only applies to expressions).</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case
that the input expression is a SQL string).</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new Condition instance</p>
</blockquote>
</div>
</section>
<section id="and_">
<input id="and_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">and_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Condition">sqlglot.expressions.Condition</a></span>:</span></span>
<label class="view-source-button" for="and_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#and_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="and_-5042"><a href="#and_-5042"><span class="linenos">5042</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span>
</span><span id="and_-5043"><a href="#and_-5043"><span class="linenos">5043</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="and_-5044"><a href="#and_-5044"><span class="linenos">5044</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
</span><span id="and_-5045"><a href="#and_-5045"><span class="linenos">5045</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="and_-5046"><a href="#and_-5046"><span class="linenos">5046</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span>
</span><span id="and_-5047"><a href="#and_-5047"><span class="linenos">5047</span></a>
</span><span id="and_-5048"><a href="#and_-5048"><span class="linenos">5048</span></a><span class="sd"> Example:</span>
</span><span id="and_-5049"><a href="#and_-5049"><span class="linenos">5049</span></a><span class="sd"> &gt;&gt;&gt; and_(&quot;x=1&quot;, and_(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
</span><span id="and_-5050"><a href="#and_-5050"><span class="linenos">5050</span></a><span class="sd"> &#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
</span><span id="and_-5051"><a href="#and_-5051"><span class="linenos">5051</span></a>
</span><span id="and_-5052"><a href="#and_-5052"><span class="linenos">5052</span></a><span class="sd"> Args:</span>
</span><span id="and_-5053"><a href="#and_-5053"><span class="linenos">5053</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="and_-5054"><a href="#and_-5054"><span class="linenos">5054</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="and_-5055"><a href="#and_-5055"><span class="linenos">5055</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="and_-5056"><a href="#and_-5056"><span class="linenos">5056</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
</span><span id="and_-5057"><a href="#and_-5057"><span class="linenos">5057</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="and_-5058"><a href="#and_-5058"><span class="linenos">5058</span></a>
</span><span id="and_-5059"><a href="#and_-5059"><span class="linenos">5059</span></a><span class="sd"> Returns:</span>
</span><span id="and_-5060"><a href="#and_-5060"><span class="linenos">5060</span></a><span class="sd"> And: the new condition</span>
</span><span id="and_-5061"><a href="#and_-5061"><span class="linenos">5061</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="and_-5062"><a href="#and_-5062"><span class="linenos">5062</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span></pre></div>
<div class="docstring"><p>Combine multiple conditions with an AND logical operator.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">and_</span><span class="p">(</span><span class="s2">&quot;x=1&quot;</span><span class="p">,</span> <span class="n">and_</span><span class="p">(</span><span class="s2">&quot;y=1&quot;</span><span class="p">,</span> <span class="s2">&quot;z=1&quot;</span><span class="p">))</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;x = 1 AND (y = 1 AND z = 1)&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If an Expression instance is passed, this is used as-is.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> whether or not to copy <code>expressions</code> (only applies to Expressions).</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>And: the new condition</p>
</blockquote>
</div>
</section>
<section id="or_">
<input id="or_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">or_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Condition">sqlglot.expressions.Condition</a></span>:</span></span>
<label class="view-source-button" for="or_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#or_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="or_-5065"><a href="#or_-5065"><span class="linenos">5065</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span>
</span><span id="or_-5066"><a href="#or_-5066"><span class="linenos">5066</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span>
</span><span id="or_-5067"><a href="#or_-5067"><span class="linenos">5067</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Condition</span><span class="p">:</span>
</span><span id="or_-5068"><a href="#or_-5068"><span class="linenos">5068</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="or_-5069"><a href="#or_-5069"><span class="linenos">5069</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span>
</span><span id="or_-5070"><a href="#or_-5070"><span class="linenos">5070</span></a>
</span><span id="or_-5071"><a href="#or_-5071"><span class="linenos">5071</span></a><span class="sd"> Example:</span>
</span><span id="or_-5072"><a href="#or_-5072"><span class="linenos">5072</span></a><span class="sd"> &gt;&gt;&gt; or_(&quot;x=1&quot;, or_(&quot;y=1&quot;, &quot;z=1&quot;)).sql()</span>
</span><span id="or_-5073"><a href="#or_-5073"><span class="linenos">5073</span></a><span class="sd"> &#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
</span><span id="or_-5074"><a href="#or_-5074"><span class="linenos">5074</span></a>
</span><span id="or_-5075"><a href="#or_-5075"><span class="linenos">5075</span></a><span class="sd"> Args:</span>
</span><span id="or_-5076"><a href="#or_-5076"><span class="linenos">5076</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span>
</span><span id="or_-5077"><a href="#or_-5077"><span class="linenos">5077</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="or_-5078"><a href="#or_-5078"><span class="linenos">5078</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="or_-5079"><a href="#or_-5079"><span class="linenos">5079</span></a><span class="sd"> copy: whether or not to copy `expressions` (only applies to Expressions).</span>
</span><span id="or_-5080"><a href="#or_-5080"><span class="linenos">5080</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="or_-5081"><a href="#or_-5081"><span class="linenos">5081</span></a>
</span><span id="or_-5082"><a href="#or_-5082"><span class="linenos">5082</span></a><span class="sd"> Returns:</span>
</span><span id="or_-5083"><a href="#or_-5083"><span class="linenos">5083</span></a><span class="sd"> Or: the new condition</span>
</span><span id="or_-5084"><a href="#or_-5084"><span class="linenos">5084</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="or_-5085"><a href="#or_-5085"><span class="linenos">5085</span></a> <span class="k">return</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">Condition</span><span class="p">,</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span></pre></div>
<div class="docstring"><p>Combine multiple conditions with an OR logical operator.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">or_</span><span class="p">(</span><span class="s2">&quot;x=1&quot;</span><span class="p">,</span> <span class="n">or_</span><span class="p">(</span><span class="s2">&quot;y=1&quot;</span><span class="p">,</span> <span class="s2">&quot;z=1&quot;</span><span class="p">))</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;x = 1 OR (y = 1 OR z = 1)&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>*expressions:</strong> the SQL code strings to parse.
If an Expression instance is passed, this is used as-is.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> whether or not to copy <code>expressions</code> (only applies to Expressions).</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Or: the new condition</p>
</blockquote>
</div>
</section>
<section id="not_">
<input id="not_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">not_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Not">sqlglot.expressions.Not</a></span>:</span></span>
<label class="view-source-button" for="not_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#not_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="not_-5088"><a href="#not_-5088"><span class="linenos">5088</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Not</span><span class="p">:</span>
</span><span id="not_-5089"><a href="#not_-5089"><span class="linenos">5089</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="not_-5090"><a href="#not_-5090"><span class="linenos">5090</span></a><span class="sd"> Wrap a condition with a NOT operator.</span>
</span><span id="not_-5091"><a href="#not_-5091"><span class="linenos">5091</span></a>
</span><span id="not_-5092"><a href="#not_-5092"><span class="linenos">5092</span></a><span class="sd"> Example:</span>
</span><span id="not_-5093"><a href="#not_-5093"><span class="linenos">5093</span></a><span class="sd"> &gt;&gt;&gt; not_(&quot;this_suit=&#39;black&#39;&quot;).sql()</span>
</span><span id="not_-5094"><a href="#not_-5094"><span class="linenos">5094</span></a><span class="sd"> &quot;NOT this_suit = &#39;black&#39;&quot;</span>
</span><span id="not_-5095"><a href="#not_-5095"><span class="linenos">5095</span></a>
</span><span id="not_-5096"><a href="#not_-5096"><span class="linenos">5096</span></a><span class="sd"> Args:</span>
</span><span id="not_-5097"><a href="#not_-5097"><span class="linenos">5097</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="not_-5098"><a href="#not_-5098"><span class="linenos">5098</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="not_-5099"><a href="#not_-5099"><span class="linenos">5099</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="not_-5100"><a href="#not_-5100"><span class="linenos">5100</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
</span><span id="not_-5101"><a href="#not_-5101"><span class="linenos">5101</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="not_-5102"><a href="#not_-5102"><span class="linenos">5102</span></a>
</span><span id="not_-5103"><a href="#not_-5103"><span class="linenos">5103</span></a><span class="sd"> Returns:</span>
</span><span id="not_-5104"><a href="#not_-5104"><span class="linenos">5104</span></a><span class="sd"> The new condition.</span>
</span><span id="not_-5105"><a href="#not_-5105"><span class="linenos">5105</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="not_-5106"><a href="#not_-5106"><span class="linenos">5106</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span>
</span><span id="not_-5107"><a href="#not_-5107"><span class="linenos">5107</span></a> <span class="n">expression</span><span class="p">,</span>
</span><span id="not_-5108"><a href="#not_-5108"><span class="linenos">5108</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span>
</span><span id="not_-5109"><a href="#not_-5109"><span class="linenos">5109</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span>
</span><span id="not_-5110"><a href="#not_-5110"><span class="linenos">5110</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="not_-5111"><a href="#not_-5111"><span class="linenos">5111</span></a> <span class="p">)</span>
</span><span id="not_-5112"><a href="#not_-5112"><span class="linenos">5112</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">Connector</span><span class="p">))</span>
</span></pre></div>
<div class="docstring"><p>Wrap a condition with a NOT operator.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">not_</span><span class="p">(</span><span class="s2">&quot;this_suit=&#39;black&#39;&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&quot;NOT this_suit = &#39;black&#39;&quot;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> the SQL code string to parse.
If an Expression instance is passed, this is used as-is.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> whether to copy the expression or not.</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new condition.</p>
</blockquote>
</div>
</section>
<section id="paren">
<input id="paren-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">paren</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="n"><a href="#Paren">sqlglot.expressions.Paren</a></span>:</span></span>
<label class="view-source-button" for="paren-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#paren"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="paren-5115"><a href="#paren-5115"><span class="linenos">5115</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Paren</span><span class="p">:</span>
</span><span id="paren-5116"><a href="#paren-5116"><span class="linenos">5116</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="paren-5117"><a href="#paren-5117"><span class="linenos">5117</span></a><span class="sd"> Wrap an expression in parentheses.</span>
</span><span id="paren-5118"><a href="#paren-5118"><span class="linenos">5118</span></a>
</span><span id="paren-5119"><a href="#paren-5119"><span class="linenos">5119</span></a><span class="sd"> Example:</span>
</span><span id="paren-5120"><a href="#paren-5120"><span class="linenos">5120</span></a><span class="sd"> &gt;&gt;&gt; paren(&quot;5 + 3&quot;).sql()</span>
</span><span id="paren-5121"><a href="#paren-5121"><span class="linenos">5121</span></a><span class="sd"> &#39;(5 + 3)&#39;</span>
</span><span id="paren-5122"><a href="#paren-5122"><span class="linenos">5122</span></a>
</span><span id="paren-5123"><a href="#paren-5123"><span class="linenos">5123</span></a><span class="sd"> Args:</span>
</span><span id="paren-5124"><a href="#paren-5124"><span class="linenos">5124</span></a><span class="sd"> expression: the SQL code string to parse.</span>
</span><span id="paren-5125"><a href="#paren-5125"><span class="linenos">5125</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="paren-5126"><a href="#paren-5126"><span class="linenos">5126</span></a><span class="sd"> copy: whether to copy the expression or not.</span>
</span><span id="paren-5127"><a href="#paren-5127"><span class="linenos">5127</span></a>
</span><span id="paren-5128"><a href="#paren-5128"><span class="linenos">5128</span></a><span class="sd"> Returns:</span>
</span><span id="paren-5129"><a href="#paren-5129"><span class="linenos">5129</span></a><span class="sd"> The wrapped expression.</span>
</span><span id="paren-5130"><a href="#paren-5130"><span class="linenos">5130</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="paren-5131"><a href="#paren-5131"><span class="linenos">5131</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span>
</span></pre></div>
<div class="docstring"><p>Wrap an expression in parentheses.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">paren</span><span class="p">(</span><span class="s2">&quot;5 + 3&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;(5 + 3)&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> the SQL code string to parse.
If an Expression instance is passed, this is used as-is.</li>
<li><strong>copy:</strong> whether to copy the expression or not.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The wrapped expression.</p>
</blockquote>
</div>
</section>
<section id="to_identifier">
<input id="to_identifier-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">to_identifier</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">name</span>, </span><span class="param"><span class="n">quoted</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="n">copy</span><span class="o">=</span><span class="kc">True</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="to_identifier-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#to_identifier"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-5149"><a href="#to_identifier-5149"><span class="linenos">5149</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span>
</span><span id="to_identifier-5150"><a href="#to_identifier-5150"><span class="linenos">5150</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an identifier.</span>
</span><span id="to_identifier-5151"><a href="#to_identifier-5151"><span class="linenos">5151</span></a>
</span><span id="to_identifier-5152"><a href="#to_identifier-5152"><span class="linenos">5152</span></a><span class="sd"> Args:</span>
</span><span id="to_identifier-5153"><a href="#to_identifier-5153"><span class="linenos">5153</span></a><span class="sd"> name: The name to turn into an identifier.</span>
</span><span id="to_identifier-5154"><a href="#to_identifier-5154"><span class="linenos">5154</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span>
</span><span id="to_identifier-5155"><a href="#to_identifier-5155"><span class="linenos">5155</span></a><span class="sd"> copy: Whether or not to copy a passed in Identefier node.</span>
</span><span id="to_identifier-5156"><a href="#to_identifier-5156"><span class="linenos">5156</span></a>
</span><span id="to_identifier-5157"><a href="#to_identifier-5157"><span class="linenos">5157</span></a><span class="sd"> Returns:</span>
</span><span id="to_identifier-5158"><a href="#to_identifier-5158"><span class="linenos">5158</span></a><span class="sd"> The identifier ast node.</span>
</span><span id="to_identifier-5159"><a href="#to_identifier-5159"><span class="linenos">5159</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="to_identifier-5160"><a href="#to_identifier-5160"><span class="linenos">5160</span></a>
</span><span id="to_identifier-5161"><a href="#to_identifier-5161"><span class="linenos">5161</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="to_identifier-5162"><a href="#to_identifier-5162"><span class="linenos">5162</span></a> <span class="k">return</span> <span class="kc">None</span>
</span><span id="to_identifier-5163"><a href="#to_identifier-5163"><span class="linenos">5163</span></a>
</span><span id="to_identifier-5164"><a href="#to_identifier-5164"><span class="linenos">5164</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">):</span>
</span><span id="to_identifier-5165"><a href="#to_identifier-5165"><span class="linenos">5165</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="to_identifier-5166"><a href="#to_identifier-5166"><span class="linenos">5166</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="to_identifier-5167"><a href="#to_identifier-5167"><span class="linenos">5167</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span>
</span><span id="to_identifier-5168"><a href="#to_identifier-5168"><span class="linenos">5168</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span>
</span><span id="to_identifier-5169"><a href="#to_identifier-5169"><span class="linenos">5169</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">SAFE_IDENTIFIER_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span>
</span><span id="to_identifier-5170"><a href="#to_identifier-5170"><span class="linenos">5170</span></a> <span class="p">)</span>
</span><span id="to_identifier-5171"><a href="#to_identifier-5171"><span class="linenos">5171</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="to_identifier-5172"><a href="#to_identifier-5172"><span class="linenos">5172</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Name needs to be a string or an Identifier, got: </span><span class="si">{</span><span class="n">name</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="to_identifier-5173"><a href="#to_identifier-5173"><span class="linenos">5173</span></a> <span class="k">return</span> <span class="n">identifier</span>
</span></pre></div>
<div class="docstring"><p>Builds an identifier.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>name:</strong> The name to turn into an identifier.</li>
<li><strong>quoted:</strong> Whether or not force quote the identifier.</li>
<li><strong>copy:</strong> Whether or not to copy a passed in Identefier node.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The identifier ast node.</p>
</blockquote>
</div>
</section>
<section id="to_interval">
<input id="to_interval-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">to_interval</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">interval</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Literal">sqlglot.expressions.Literal</a></span></span><span class="return-annotation">) -> <span class="n"><a href="#Interval">sqlglot.expressions.Interval</a></span>:</span></span>
<label class="view-source-button" for="to_interval-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#to_interval"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="to_interval-5179"><a href="#to_interval-5179"><span class="linenos">5179</span></a><span class="k">def</span> <span class="nf">to_interval</span><span class="p">(</span><span class="n">interval</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Literal</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Interval</span><span class="p">:</span>
</span><span id="to_interval-5180"><a href="#to_interval-5180"><span class="linenos">5180</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Builds an interval expression from a string like &#39;1 day&#39; or &#39;5 months&#39;.&quot;&quot;&quot;</span>
</span><span id="to_interval-5181"><a href="#to_interval-5181"><span class="linenos">5181</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">interval</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span>
</span><span id="to_interval-5182"><a href="#to_interval-5182"><span class="linenos">5182</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span>
</span><span id="to_interval-5183"><a href="#to_interval-5183"><span class="linenos">5183</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Invalid interval string.&quot;</span><span class="p">)</span>
</span><span id="to_interval-5184"><a href="#to_interval-5184"><span class="linenos">5184</span></a>
</span><span id="to_interval-5185"><a href="#to_interval-5185"><span class="linenos">5185</span></a> <span class="n">interval</span> <span class="o">=</span> <span class="n">interval</span><span class="o">.</span><span class="n">this</span>
</span><span id="to_interval-5186"><a href="#to_interval-5186"><span class="linenos">5186</span></a>
</span><span id="to_interval-5187"><a href="#to_interval-5187"><span class="linenos">5187</span></a> <span class="n">interval_parts</span> <span class="o">=</span> <span class="n">INTERVAL_STRING_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">interval</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="to_interval-5188"><a href="#to_interval-5188"><span class="linenos">5188</span></a>
</span><span id="to_interval-5189"><a href="#to_interval-5189"><span class="linenos">5189</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span>
</span><span id="to_interval-5190"><a href="#to_interval-5190"><span class="linenos">5190</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Invalid interval string.&quot;</span><span class="p">)</span>
</span><span id="to_interval-5191"><a href="#to_interval-5191"><span class="linenos">5191</span></a>
</span><span id="to_interval-5192"><a href="#to_interval-5192"><span class="linenos">5192</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span>
</span><span id="to_interval-5193"><a href="#to_interval-5193"><span class="linenos">5193</span></a> <span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)),</span>
</span><span id="to_interval-5194"><a href="#to_interval-5194"><span class="linenos">5194</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span>
</span><span id="to_interval-5195"><a href="#to_interval-5195"><span class="linenos">5195</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Builds an interval expression from a string like '1 day' or '5 months'.</p>
</div>
</section>
<section id="to_table">
<input id="to_table-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">to_table</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">sql_path</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Table">sqlglot.expressions.Table</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n">Optional</span><span class="p">[</span><span class="n"><a href="#Table">sqlglot.expressions.Table</a></span><span class="p">]</span>:</span></span>
<label class="view-source-button" for="to_table-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#to_table"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="to_table-5208"><a href="#to_table-5208"><span class="linenos">5208</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span>
</span><span id="to_table-5209"><a href="#to_table-5209"><span class="linenos">5209</span></a> <span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span>
</span><span id="to_table-5210"><a href="#to_table-5210"><span class="linenos">5210</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Table</span><span class="p">]:</span>
</span><span id="to_table-5211"><a href="#to_table-5211"><span class="linenos">5211</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="to_table-5212"><a href="#to_table-5212"><span class="linenos">5212</span></a><span class="sd"> Create a table expression from a `[catalog].[schema].[table]` sql path. Catalog and schema are optional.</span>
</span><span id="to_table-5213"><a href="#to_table-5213"><span class="linenos">5213</span></a><span class="sd"> If a table is passed in then that table is returned.</span>
</span><span id="to_table-5214"><a href="#to_table-5214"><span class="linenos">5214</span></a>
</span><span id="to_table-5215"><a href="#to_table-5215"><span class="linenos">5215</span></a><span class="sd"> Args:</span>
</span><span id="to_table-5216"><a href="#to_table-5216"><span class="linenos">5216</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span>
</span><span id="to_table-5217"><a href="#to_table-5217"><span class="linenos">5217</span></a><span class="sd"> dialect: the source dialect according to which the table name will be parsed.</span>
</span><span id="to_table-5218"><a href="#to_table-5218"><span class="linenos">5218</span></a><span class="sd"> kwargs: the kwargs to instantiate the resulting `Table` expression with.</span>
</span><span id="to_table-5219"><a href="#to_table-5219"><span class="linenos">5219</span></a>
</span><span id="to_table-5220"><a href="#to_table-5220"><span class="linenos">5220</span></a><span class="sd"> Returns:</span>
</span><span id="to_table-5221"><a href="#to_table-5221"><span class="linenos">5221</span></a><span class="sd"> A table expression.</span>
</span><span id="to_table-5222"><a href="#to_table-5222"><span class="linenos">5222</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="to_table-5223"><a href="#to_table-5223"><span class="linenos">5223</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
</span><span id="to_table-5224"><a href="#to_table-5224"><span class="linenos">5224</span></a> <span class="k">return</span> <span class="n">sql_path</span>
</span><span id="to_table-5225"><a href="#to_table-5225"><span class="linenos">5225</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="to_table-5226"><a href="#to_table-5226"><span class="linenos">5226</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="to_table-5227"><a href="#to_table-5227"><span class="linenos">5227</span></a>
</span><span id="to_table-5228"><a href="#to_table-5228"><span class="linenos">5228</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span>
</span><span id="to_table-5229"><a href="#to_table-5229"><span class="linenos">5229</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
</span><span id="to_table-5230"><a href="#to_table-5230"><span class="linenos">5230</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="to_table-5231"><a href="#to_table-5231"><span class="linenos">5231</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
</span><span id="to_table-5232"><a href="#to_table-5232"><span class="linenos">5232</span></a>
</span><span id="to_table-5233"><a href="#to_table-5233"><span class="linenos">5233</span></a> <span class="k">return</span> <span class="n">table</span>
</span></pre></div>
<div class="docstring"><p>Create a table expression from a <code>[catalog].[schema].[table]</code> sql path. Catalog and schema are optional.
If a table is passed in then that table is returned.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>sql_path:</strong> a <code>[catalog].[schema].[table]</code> string.</li>
<li><strong>dialect:</strong> the source dialect according to which the table name will be parsed.</li>
<li><strong>kwargs:</strong> the kwargs to instantiate the resulting <code><a href="#Table">Table</a></code> expression with.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>A table expression.</p>
</blockquote>
</div>
</section>
<section id="to_column">
<input id="to_column-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">to_column</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Column">sqlglot.expressions.Column</a></span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.expressions.Column</a></span>:</span></span>
<label class="view-source-button" for="to_column-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#to_column"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="to_column-5236"><a href="#to_column-5236"><span class="linenos">5236</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
</span><span id="to_column-5237"><a href="#to_column-5237"><span class="linenos">5237</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="to_column-5238"><a href="#to_column-5238"><span class="linenos">5238</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span>
</span><span id="to_column-5239"><a href="#to_column-5239"><span class="linenos">5239</span></a>
</span><span id="to_column-5240"><a href="#to_column-5240"><span class="linenos">5240</span></a><span class="sd"> If a column is passed in then that column is returned.</span>
</span><span id="to_column-5241"><a href="#to_column-5241"><span class="linenos">5241</span></a>
</span><span id="to_column-5242"><a href="#to_column-5242"><span class="linenos">5242</span></a><span class="sd"> Args:</span>
</span><span id="to_column-5243"><a href="#to_column-5243"><span class="linenos">5243</span></a><span class="sd"> sql_path: `[table].[column]` string</span>
</span><span id="to_column-5244"><a href="#to_column-5244"><span class="linenos">5244</span></a><span class="sd"> Returns:</span>
</span><span id="to_column-5245"><a href="#to_column-5245"><span class="linenos">5245</span></a><span class="sd"> Table: A column expression</span>
</span><span id="to_column-5246"><a href="#to_column-5246"><span class="linenos">5246</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="to_column-5247"><a href="#to_column-5247"><span class="linenos">5247</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span>
</span><span id="to_column-5248"><a href="#to_column-5248"><span class="linenos">5248</span></a> <span class="k">return</span> <span class="n">sql_path</span>
</span><span id="to_column-5249"><a href="#to_column-5249"><span class="linenos">5249</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="to_column-5250"><a href="#to_column-5250"><span class="linenos">5250</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="to_column-5251"><a href="#to_column-5251"><span class="linenos">5251</span></a> <span class="k">return</span> <span class="n">column</span><span class="p">(</span><span class="o">*</span><span class="nb">reversed</span><span class="p">(</span><span class="n">sql_path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;.&quot;</span><span class="p">)),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span></pre></div>
<div class="docstring"><p>Create a column from a <code>[table].[column]</code> sql path. Schema is optional.</p>
<p>If a column is passed in then that column is returned.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>sql_path:</strong> <code>[table].[column]</code> string</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Table: A column expression</p>
</blockquote>
</div>
</section>
<section id="alias_">
<input id="alias_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">alias_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span>,</span><span class="param"> <span class="n">table</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">]]</span> <span class="o">=</span> <span class="kc">False</span>,</span><span class="param"> <span class="n">quoted</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span>
<label class="view-source-button" for="alias_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#alias_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="alias_-5254"><a href="#alias_-5254"><span class="linenos">5254</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span>
</span><span id="alias_-5255"><a href="#alias_-5255"><span class="linenos">5255</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="alias_-5256"><a href="#alias_-5256"><span class="linenos">5256</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
</span><span id="alias_-5257"><a href="#alias_-5257"><span class="linenos">5257</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
</span><span id="alias_-5258"><a href="#alias_-5258"><span class="linenos">5258</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="alias_-5259"><a href="#alias_-5259"><span class="linenos">5259</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="alias_-5260"><a href="#alias_-5260"><span class="linenos">5260</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span>
</span><span id="alias_-5261"><a href="#alias_-5261"><span class="linenos">5261</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="alias_-5262"><a href="#alias_-5262"><span class="linenos">5262</span></a><span class="p">):</span>
</span><span id="alias_-5263"><a href="#alias_-5263"><span class="linenos">5263</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Create an Alias expression.</span>
</span><span id="alias_-5264"><a href="#alias_-5264"><span class="linenos">5264</span></a>
</span><span id="alias_-5265"><a href="#alias_-5265"><span class="linenos">5265</span></a><span class="sd"> Example:</span>
</span><span id="alias_-5266"><a href="#alias_-5266"><span class="linenos">5266</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;foo&#39;, &#39;bar&#39;).sql()</span>
</span><span id="alias_-5267"><a href="#alias_-5267"><span class="linenos">5267</span></a><span class="sd"> &#39;foo AS bar&#39;</span>
</span><span id="alias_-5268"><a href="#alias_-5268"><span class="linenos">5268</span></a>
</span><span id="alias_-5269"><a href="#alias_-5269"><span class="linenos">5269</span></a><span class="sd"> &gt;&gt;&gt; alias_(&#39;(select 1, 2)&#39;, &#39;bar&#39;, table=[&#39;a&#39;, &#39;b&#39;]).sql()</span>
</span><span id="alias_-5270"><a href="#alias_-5270"><span class="linenos">5270</span></a><span class="sd"> &#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
</span><span id="alias_-5271"><a href="#alias_-5271"><span class="linenos">5271</span></a>
</span><span id="alias_-5272"><a href="#alias_-5272"><span class="linenos">5272</span></a><span class="sd"> Args:</span>
</span><span id="alias_-5273"><a href="#alias_-5273"><span class="linenos">5273</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
</span><span id="alias_-5274"><a href="#alias_-5274"><span class="linenos">5274</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="alias_-5275"><a href="#alias_-5275"><span class="linenos">5275</span></a><span class="sd"> alias: the alias name to use. If the name has</span>
</span><span id="alias_-5276"><a href="#alias_-5276"><span class="linenos">5276</span></a><span class="sd"> special characters it is quoted.</span>
</span><span id="alias_-5277"><a href="#alias_-5277"><span class="linenos">5277</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span>
</span><span id="alias_-5278"><a href="#alias_-5278"><span class="linenos">5278</span></a><span class="sd"> quoted: whether or not to quote the alias</span>
</span><span id="alias_-5279"><a href="#alias_-5279"><span class="linenos">5279</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="alias_-5280"><a href="#alias_-5280"><span class="linenos">5280</span></a><span class="sd"> copy: Whether or not to copy the expression.</span>
</span><span id="alias_-5281"><a href="#alias_-5281"><span class="linenos">5281</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="alias_-5282"><a href="#alias_-5282"><span class="linenos">5282</span></a>
</span><span id="alias_-5283"><a href="#alias_-5283"><span class="linenos">5283</span></a><span class="sd"> Returns:</span>
</span><span id="alias_-5284"><a href="#alias_-5284"><span class="linenos">5284</span></a><span class="sd"> Alias: the aliased expression</span>
</span><span id="alias_-5285"><a href="#alias_-5285"><span class="linenos">5285</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="alias_-5286"><a href="#alias_-5286"><span class="linenos">5286</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="alias_-5287"><a href="#alias_-5287"><span class="linenos">5287</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span>
</span><span id="alias_-5288"><a href="#alias_-5288"><span class="linenos">5288</span></a>
</span><span id="alias_-5289"><a href="#alias_-5289"><span class="linenos">5289</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span>
</span><span id="alias_-5290"><a href="#alias_-5290"><span class="linenos">5290</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
</span><span id="alias_-5291"><a href="#alias_-5291"><span class="linenos">5291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span>
</span><span id="alias_-5292"><a href="#alias_-5292"><span class="linenos">5292</span></a>
</span><span id="alias_-5293"><a href="#alias_-5293"><span class="linenos">5293</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span>
</span><span id="alias_-5294"><a href="#alias_-5294"><span class="linenos">5294</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">table</span><span class="p">:</span>
</span><span id="alias_-5295"><a href="#alias_-5295"><span class="linenos">5295</span></a> <span class="n">table_alias</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">&quot;columns&quot;</span><span class="p">,</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">))</span>
</span><span id="alias_-5296"><a href="#alias_-5296"><span class="linenos">5296</span></a>
</span><span id="alias_-5297"><a href="#alias_-5297"><span class="linenos">5297</span></a> <span class="k">return</span> <span class="n">exp</span>
</span><span id="alias_-5298"><a href="#alias_-5298"><span class="linenos">5298</span></a>
</span><span id="alias_-5299"><a href="#alias_-5299"><span class="linenos">5299</span></a> <span class="c1"># We don&#39;t set the &quot;alias&quot; arg for Window expressions, because that would add an IDENTIFIER node in</span>
</span><span id="alias_-5300"><a href="#alias_-5300"><span class="linenos">5300</span></a> <span class="c1"># the AST, representing a &quot;named_window&quot; [1] construct (eg. bigquery). What we want is an ALIAS node</span>
</span><span id="alias_-5301"><a href="#alias_-5301"><span class="linenos">5301</span></a> <span class="c1"># for the complete Window expression.</span>
</span><span id="alias_-5302"><a href="#alias_-5302"><span class="linenos">5302</span></a> <span class="c1">#</span>
</span><span id="alias_-5303"><a href="#alias_-5303"><span class="linenos">5303</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span>
</span><span id="alias_-5304"><a href="#alias_-5304"><span class="linenos">5304</span></a>
</span><span id="alias_-5305"><a href="#alias_-5305"><span class="linenos">5305</span></a> <span class="k">if</span> <span class="s2">&quot;alias&quot;</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">arg_types</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exp</span><span class="p">,</span> <span class="n">Window</span><span class="p">):</span>
</span><span id="alias_-5306"><a href="#alias_-5306"><span class="linenos">5306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">&quot;alias&quot;</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span>
</span><span id="alias_-5307"><a href="#alias_-5307"><span class="linenos">5307</span></a> <span class="k">return</span> <span class="n">exp</span>
</span><span id="alias_-5308"><a href="#alias_-5308"><span class="linenos">5308</span></a> <span class="k">return</span> <span class="n">Alias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Create an Alias expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">alias_</span><span class="p">(</span><span class="s1">&#39;foo&#39;</span><span class="p">,</span> <span class="s1">&#39;bar&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;foo AS bar&#39;</span>
</code></pre>
</div>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">alias_</span><span class="p">(</span><span class="s1">&#39;(select 1, 2)&#39;</span><span class="p">,</span> <span class="s1">&#39;bar&#39;</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;b&#39;</span><span class="p">])</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;(SELECT 1, 2) AS bar(a, b)&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> the SQL code strings to parse.
If an Expression instance is passed, this is used as-is.</li>
<li><strong>alias:</strong> the alias name to use. If the name has
special characters it is quoted.</li>
<li><strong>table:</strong> Whether or not to create a table alias, can also be a list of columns.</li>
<li><strong>quoted:</strong> whether or not to quote the alias</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>copy:</strong> Whether or not to copy the expression.</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Alias: the aliased expression</p>
</blockquote>
</div>
</section>
<section id="subquery">
<input id="subquery-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">subquery</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span>
<label class="view-source-button" for="subquery-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#subquery"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="subquery-5311"><a href="#subquery-5311"><span class="linenos">5311</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span>
</span><span id="subquery-5312"><a href="#subquery-5312"><span class="linenos">5312</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span>
</span><span id="subquery-5313"><a href="#subquery-5313"><span class="linenos">5313</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="subquery-5314"><a href="#subquery-5314"><span class="linenos">5314</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="subquery-5315"><a href="#subquery-5315"><span class="linenos">5315</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span>
</span><span id="subquery-5316"><a href="#subquery-5316"><span class="linenos">5316</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Select</span><span class="p">:</span>
</span><span id="subquery-5317"><a href="#subquery-5317"><span class="linenos">5317</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="subquery-5318"><a href="#subquery-5318"><span class="linenos">5318</span></a><span class="sd"> Build a subquery expression.</span>
</span><span id="subquery-5319"><a href="#subquery-5319"><span class="linenos">5319</span></a>
</span><span id="subquery-5320"><a href="#subquery-5320"><span class="linenos">5320</span></a><span class="sd"> Example:</span>
</span><span id="subquery-5321"><a href="#subquery-5321"><span class="linenos">5321</span></a><span class="sd"> &gt;&gt;&gt; subquery(&#39;select x from tbl&#39;, &#39;bar&#39;).select(&#39;x&#39;).sql()</span>
</span><span id="subquery-5322"><a href="#subquery-5322"><span class="linenos">5322</span></a><span class="sd"> &#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
</span><span id="subquery-5323"><a href="#subquery-5323"><span class="linenos">5323</span></a>
</span><span id="subquery-5324"><a href="#subquery-5324"><span class="linenos">5324</span></a><span class="sd"> Args:</span>
</span><span id="subquery-5325"><a href="#subquery-5325"><span class="linenos">5325</span></a><span class="sd"> expression: the SQL code strings to parse.</span>
</span><span id="subquery-5326"><a href="#subquery-5326"><span class="linenos">5326</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span>
</span><span id="subquery-5327"><a href="#subquery-5327"><span class="linenos">5327</span></a><span class="sd"> alias: the alias name to use.</span>
</span><span id="subquery-5328"><a href="#subquery-5328"><span class="linenos">5328</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span>
</span><span id="subquery-5329"><a href="#subquery-5329"><span class="linenos">5329</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span>
</span><span id="subquery-5330"><a href="#subquery-5330"><span class="linenos">5330</span></a>
</span><span id="subquery-5331"><a href="#subquery-5331"><span class="linenos">5331</span></a><span class="sd"> Returns:</span>
</span><span id="subquery-5332"><a href="#subquery-5332"><span class="linenos">5332</span></a><span class="sd"> A new Select instance with the subquery expression included.</span>
</span><span id="subquery-5333"><a href="#subquery-5333"><span class="linenos">5333</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="subquery-5334"><a href="#subquery-5334"><span class="linenos">5334</span></a>
</span><span id="subquery-5335"><a href="#subquery-5335"><span class="linenos">5335</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span>
</span><span id="subquery-5336"><a href="#subquery-5336"><span class="linenos">5336</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Build a subquery expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">subquery</span><span class="p">(</span><span class="s1">&#39;select x from tbl&#39;</span><span class="p">,</span> <span class="s1">&#39;bar&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s1">&#39;x&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT x FROM (SELECT x FROM tbl) AS bar&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> the SQL code strings to parse.
If an Expression instance is passed, this is used as-is.</li>
<li><strong>alias:</strong> the alias name to use.</li>
<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>
<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>A new Select instance with the subquery expression included.</p>
</blockquote>
</div>
</section>
<section id="column">
<input id="column-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">column</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span>,</span><span class="param"> <span class="n">table</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">db</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">catalog</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">quoted</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.expressions.Column</a></span>:</span></span>
<label class="view-source-button" for="column-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#column"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="column-5339"><a href="#column-5339"><span class="linenos">5339</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span>
</span><span id="column-5340"><a href="#column-5340"><span class="linenos">5340</span></a> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span>
</span><span id="column-5341"><a href="#column-5341"><span class="linenos">5341</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="column-5342"><a href="#column-5342"><span class="linenos">5342</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="column-5343"><a href="#column-5343"><span class="linenos">5343</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="column-5344"><a href="#column-5344"><span class="linenos">5344</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="column-5345"><a href="#column-5345"><span class="linenos">5345</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Column</span><span class="p">:</span>
</span><span id="column-5346"><a href="#column-5346"><span class="linenos">5346</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="column-5347"><a href="#column-5347"><span class="linenos">5347</span></a><span class="sd"> Build a Column.</span>
</span><span id="column-5348"><a href="#column-5348"><span class="linenos">5348</span></a>
</span><span id="column-5349"><a href="#column-5349"><span class="linenos">5349</span></a><span class="sd"> Args:</span>
</span><span id="column-5350"><a href="#column-5350"><span class="linenos">5350</span></a><span class="sd"> col: Column name.</span>
</span><span id="column-5351"><a href="#column-5351"><span class="linenos">5351</span></a><span class="sd"> table: Table name.</span>
</span><span id="column-5352"><a href="#column-5352"><span class="linenos">5352</span></a><span class="sd"> db: Database name.</span>
</span><span id="column-5353"><a href="#column-5353"><span class="linenos">5353</span></a><span class="sd"> catalog: Catalog name.</span>
</span><span id="column-5354"><a href="#column-5354"><span class="linenos">5354</span></a><span class="sd"> quoted: Whether to force quotes on the column&#39;s identifiers.</span>
</span><span id="column-5355"><a href="#column-5355"><span class="linenos">5355</span></a>
</span><span id="column-5356"><a href="#column-5356"><span class="linenos">5356</span></a><span class="sd"> Returns:</span>
</span><span id="column-5357"><a href="#column-5357"><span class="linenos">5357</span></a><span class="sd"> The new Column instance.</span>
</span><span id="column-5358"><a href="#column-5358"><span class="linenos">5358</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="column-5359"><a href="#column-5359"><span class="linenos">5359</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span>
</span><span id="column-5360"><a href="#column-5360"><span class="linenos">5360</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="column-5361"><a href="#column-5361"><span class="linenos">5361</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="column-5362"><a href="#column-5362"><span class="linenos">5362</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="column-5363"><a href="#column-5363"><span class="linenos">5363</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="column-5364"><a href="#column-5364"><span class="linenos">5364</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Build a Column.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>col:</strong> Column name.</li>
<li><strong>table:</strong> Table name.</li>
<li><strong>db:</strong> Database name.</li>
<li><strong>catalog:</strong> Catalog name.</li>
<li><strong>quoted:</strong> Whether to force quotes on the column's identifiers.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new Column instance.</p>
</blockquote>
</div>
</section>
<section id="cast">
<input id="cast-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">cast</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#DataType">sqlglot.expressions.DataType</a></span> <span class="o">|</span> <span class="n"><a href="#DataType.Type">sqlglot.expressions.DataType.Type</a></span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Cast">sqlglot.expressions.Cast</a></span>:</span></span>
<label class="view-source-button" for="cast-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#cast"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="cast-5367"><a href="#cast-5367"><span class="linenos">5367</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Cast</span><span class="p">:</span>
</span><span id="cast-5368"><a href="#cast-5368"><span class="linenos">5368</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Cast an expression to a data type.</span>
</span><span id="cast-5369"><a href="#cast-5369"><span class="linenos">5369</span></a>
</span><span id="cast-5370"><a href="#cast-5370"><span class="linenos">5370</span></a><span class="sd"> Example:</span>
</span><span id="cast-5371"><a href="#cast-5371"><span class="linenos">5371</span></a><span class="sd"> &gt;&gt;&gt; cast(&#39;x + 1&#39;, &#39;int&#39;).sql()</span>
</span><span id="cast-5372"><a href="#cast-5372"><span class="linenos">5372</span></a><span class="sd"> &#39;CAST(x + 1 AS INT)&#39;</span>
</span><span id="cast-5373"><a href="#cast-5373"><span class="linenos">5373</span></a>
</span><span id="cast-5374"><a href="#cast-5374"><span class="linenos">5374</span></a><span class="sd"> Args:</span>
</span><span id="cast-5375"><a href="#cast-5375"><span class="linenos">5375</span></a><span class="sd"> expression: The expression to cast.</span>
</span><span id="cast-5376"><a href="#cast-5376"><span class="linenos">5376</span></a><span class="sd"> to: The datatype to cast to.</span>
</span><span id="cast-5377"><a href="#cast-5377"><span class="linenos">5377</span></a>
</span><span id="cast-5378"><a href="#cast-5378"><span class="linenos">5378</span></a><span class="sd"> Returns:</span>
</span><span id="cast-5379"><a href="#cast-5379"><span class="linenos">5379</span></a><span class="sd"> The new Cast instance.</span>
</span><span id="cast-5380"><a href="#cast-5380"><span class="linenos">5380</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="cast-5381"><a href="#cast-5381"><span class="linenos">5381</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span>
</span><span id="cast-5382"><a href="#cast-5382"><span class="linenos">5382</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span>
</span></pre></div>
<div class="docstring"><p>Cast an expression to a data type.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">cast</span><span class="p">(</span><span class="s1">&#39;x + 1&#39;</span><span class="p">,</span> <span class="s1">&#39;int&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;CAST(x + 1 AS INT)&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> The expression to cast.</li>
<li><strong>to:</strong> The datatype to cast to.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new Cast instance.</p>
</blockquote>
</div>
</section>
<section id="table_">
<input id="table_-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">table_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">table</span><span class="p">:</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span> <span class="o">|</span> <span class="nb">str</span>,</span><span class="param"> <span class="n">db</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">catalog</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">quoted</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#Table">sqlglot.expressions.Table</a></span>:</span></span>
<label class="view-source-button" for="table_-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#table_"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="table_-5385"><a href="#table_-5385"><span class="linenos">5385</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span>
</span><span id="table_-5386"><a href="#table_-5386"><span class="linenos">5386</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">,</span>
</span><span id="table_-5387"><a href="#table_-5387"><span class="linenos">5387</span></a> <span class="n">db</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="table_-5388"><a href="#table_-5388"><span class="linenos">5388</span></a> <span class="n">catalog</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="table_-5389"><a href="#table_-5389"><span class="linenos">5389</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="table_-5390"><a href="#table_-5390"><span class="linenos">5390</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Identifier</span> <span class="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="table_-5391"><a href="#table_-5391"><span class="linenos">5391</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Table</span><span class="p">:</span>
</span><span id="table_-5392"><a href="#table_-5392"><span class="linenos">5392</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a Table.</span>
</span><span id="table_-5393"><a href="#table_-5393"><span class="linenos">5393</span></a>
</span><span id="table_-5394"><a href="#table_-5394"><span class="linenos">5394</span></a><span class="sd"> Args:</span>
</span><span id="table_-5395"><a href="#table_-5395"><span class="linenos">5395</span></a><span class="sd"> table: Table name.</span>
</span><span id="table_-5396"><a href="#table_-5396"><span class="linenos">5396</span></a><span class="sd"> db: Database name.</span>
</span><span id="table_-5397"><a href="#table_-5397"><span class="linenos">5397</span></a><span class="sd"> catalog: Catalog name.</span>
</span><span id="table_-5398"><a href="#table_-5398"><span class="linenos">5398</span></a><span class="sd"> quote: Whether to force quotes on the table&#39;s identifiers.</span>
</span><span id="table_-5399"><a href="#table_-5399"><span class="linenos">5399</span></a><span class="sd"> alias: Table&#39;s alias.</span>
</span><span id="table_-5400"><a href="#table_-5400"><span class="linenos">5400</span></a>
</span><span id="table_-5401"><a href="#table_-5401"><span class="linenos">5401</span></a><span class="sd"> Returns:</span>
</span><span id="table_-5402"><a href="#table_-5402"><span class="linenos">5402</span></a><span class="sd"> The new Table instance.</span>
</span><span id="table_-5403"><a href="#table_-5403"><span class="linenos">5403</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="table_-5404"><a href="#table_-5404"><span class="linenos">5404</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span>
</span><span id="table_-5405"><a href="#table_-5405"><span class="linenos">5405</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="table_-5406"><a href="#table_-5406"><span class="linenos">5406</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="table_-5407"><a href="#table_-5407"><span class="linenos">5407</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span>
</span><span id="table_-5408"><a href="#table_-5408"><span class="linenos">5408</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="table_-5409"><a href="#table_-5409"><span class="linenos">5409</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Build a Table.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>table:</strong> Table name.</li>
<li><strong>db:</strong> Database name.</li>
<li><strong>catalog:</strong> Catalog name.</li>
<li><strong>quote:</strong> Whether to force quotes on the table's identifiers.</li>
<li><strong>alias:</strong> Table's alias.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new Table instance.</p>
</blockquote>
</div>
</section>
<section id="values">
<input id="values-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">values</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">values</span><span class="p">:</span> <span class="n">Iterable</span><span class="p">[</span><span class="n">Tuple</span><span class="p">[</span><span class="n">Any</span><span class="p">,</span> <span class="o">...</span><span class="p">]]</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">columns</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#DataType">sqlglot.expressions.DataType</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#Values">sqlglot.expressions.Values</a></span>:</span></span>
<label class="view-source-button" for="values-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#values"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="values-5412"><a href="#values-5412"><span class="linenos">5412</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span>
</span><span id="values-5413"><a href="#values-5413"><span class="linenos">5413</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="o">...</span><span class="p">]],</span>
</span><span id="values-5414"><a href="#values-5414"><span class="linenos">5414</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="values-5415"><a href="#values-5415"><span class="linenos">5415</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
</span><span id="values-5416"><a href="#values-5416"><span class="linenos">5416</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Values</span><span class="p">:</span>
</span><span id="values-5417"><a href="#values-5417"><span class="linenos">5417</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build VALUES statement.</span>
</span><span id="values-5418"><a href="#values-5418"><span class="linenos">5418</span></a>
</span><span id="values-5419"><a href="#values-5419"><span class="linenos">5419</span></a><span class="sd"> Example:</span>
</span><span id="values-5420"><a href="#values-5420"><span class="linenos">5420</span></a><span class="sd"> &gt;&gt;&gt; values([(1, &#39;2&#39;)]).sql()</span>
</span><span id="values-5421"><a href="#values-5421"><span class="linenos">5421</span></a><span class="sd"> &quot;VALUES (1, &#39;2&#39;)&quot;</span>
</span><span id="values-5422"><a href="#values-5422"><span class="linenos">5422</span></a>
</span><span id="values-5423"><a href="#values-5423"><span class="linenos">5423</span></a><span class="sd"> Args:</span>
</span><span id="values-5424"><a href="#values-5424"><span class="linenos">5424</span></a><span class="sd"> values: values statements that will be converted to SQL</span>
</span><span id="values-5425"><a href="#values-5425"><span class="linenos">5425</span></a><span class="sd"> alias: optional alias</span>
</span><span id="values-5426"><a href="#values-5426"><span class="linenos">5426</span></a><span class="sd"> columns: Optional list of ordered column names or ordered dictionary of column names to types.</span>
</span><span id="values-5427"><a href="#values-5427"><span class="linenos">5427</span></a><span class="sd"> If either are provided then an alias is also required.</span>
</span><span id="values-5428"><a href="#values-5428"><span class="linenos">5428</span></a>
</span><span id="values-5429"><a href="#values-5429"><span class="linenos">5429</span></a><span class="sd"> Returns:</span>
</span><span id="values-5430"><a href="#values-5430"><span class="linenos">5430</span></a><span class="sd"> Values: the Values expression object</span>
</span><span id="values-5431"><a href="#values-5431"><span class="linenos">5431</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="values-5432"><a href="#values-5432"><span class="linenos">5432</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">alias</span><span class="p">:</span>
</span><span id="values-5433"><a href="#values-5433"><span class="linenos">5433</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Alias is required when providing columns&quot;</span><span class="p">)</span>
</span><span id="values-5434"><a href="#values-5434"><span class="linenos">5434</span></a>
</span><span id="values-5435"><a href="#values-5435"><span class="linenos">5435</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span>
</span><span id="values-5436"><a href="#values-5436"><span class="linenos">5436</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">tup</span><span class="p">)</span> <span class="k">for</span> <span class="n">tup</span> <span class="ow">in</span> <span class="n">values</span><span class="p">],</span>
</span><span id="values-5437"><a href="#values-5437"><span class="linenos">5437</span></a> <span class="n">alias</span><span class="o">=</span><span class="p">(</span>
</span><span id="values-5438"><a href="#values-5438"><span class="linenos">5438</span></a> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">),</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span>
</span><span id="values-5439"><a href="#values-5439"><span class="linenos">5439</span></a> <span class="k">if</span> <span class="n">columns</span>
</span><span id="values-5440"><a href="#values-5440"><span class="linenos">5440</span></a> <span class="k">else</span> <span class="p">(</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span>
</span><span id="values-5441"><a href="#values-5441"><span class="linenos">5441</span></a> <span class="p">),</span>
</span><span id="values-5442"><a href="#values-5442"><span class="linenos">5442</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Build VALUES statement.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">values</span><span class="p">([(</span><span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;2&#39;</span><span class="p">)])</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&quot;VALUES (1, &#39;2&#39;)&quot;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>values:</strong> values statements that will be converted to SQL</li>
<li><strong>alias:</strong> optional alias</li>
<li><strong>columns:</strong> Optional list of ordered column names or ordered dictionary of column names to types.
If either are provided then an alias is also required.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Values: the Values expression object</p>
</blockquote>
</div>
</section>
<section id="var">
<input id="var-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">var</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">name</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#Var">sqlglot.expressions.Var</a></span>:</span></span>
<label class="view-source-button" for="var-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#var"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="var-5445"><a href="#var-5445"><span class="linenos">5445</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">Var</span><span class="p">:</span>
</span><span id="var-5446"><a href="#var-5446"><span class="linenos">5446</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build a SQL variable.</span>
</span><span id="var-5447"><a href="#var-5447"><span class="linenos">5447</span></a>
</span><span id="var-5448"><a href="#var-5448"><span class="linenos">5448</span></a><span class="sd"> Example:</span>
</span><span id="var-5449"><a href="#var-5449"><span class="linenos">5449</span></a><span class="sd"> &gt;&gt;&gt; repr(var(&#39;x&#39;))</span>
</span><span id="var-5450"><a href="#var-5450"><span class="linenos">5450</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
</span><span id="var-5451"><a href="#var-5451"><span class="linenos">5451</span></a>
</span><span id="var-5452"><a href="#var-5452"><span class="linenos">5452</span></a><span class="sd"> &gt;&gt;&gt; repr(var(column(&#39;x&#39;, table=&#39;y&#39;)))</span>
</span><span id="var-5453"><a href="#var-5453"><span class="linenos">5453</span></a><span class="sd"> &#39;(VAR this: x)&#39;</span>
</span><span id="var-5454"><a href="#var-5454"><span class="linenos">5454</span></a>
</span><span id="var-5455"><a href="#var-5455"><span class="linenos">5455</span></a><span class="sd"> Args:</span>
</span><span id="var-5456"><a href="#var-5456"><span class="linenos">5456</span></a><span class="sd"> name: The name of the var or an expression who&#39;s name will become the var.</span>
</span><span id="var-5457"><a href="#var-5457"><span class="linenos">5457</span></a>
</span><span id="var-5458"><a href="#var-5458"><span class="linenos">5458</span></a><span class="sd"> Returns:</span>
</span><span id="var-5459"><a href="#var-5459"><span class="linenos">5459</span></a><span class="sd"> The new variable node.</span>
</span><span id="var-5460"><a href="#var-5460"><span class="linenos">5460</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="var-5461"><a href="#var-5461"><span class="linenos">5461</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">name</span><span class="p">:</span>
</span><span id="var-5462"><a href="#var-5462"><span class="linenos">5462</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Cannot convert empty name into var.&quot;</span><span class="p">)</span>
</span><span id="var-5463"><a href="#var-5463"><span class="linenos">5463</span></a>
</span><span id="var-5464"><a href="#var-5464"><span class="linenos">5464</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="var-5465"><a href="#var-5465"><span class="linenos">5465</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">name</span>
</span><span id="var-5466"><a href="#var-5466"><span class="linenos">5466</span></a> <span class="k">return</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Build a SQL variable.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="nb">repr</span><span class="p">(</span><span class="n">var</span><span class="p">(</span><span class="s1">&#39;x&#39;</span><span class="p">))</span>
<span class="go">&#39;(VAR this: x)&#39;</span>
</code></pre>
</div>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="nb">repr</span><span class="p">(</span><span class="n">var</span><span class="p">(</span><span class="n">column</span><span class="p">(</span><span class="s1">&#39;x&#39;</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="s1">&#39;y&#39;</span><span class="p">)))</span>
<span class="go">&#39;(VAR this: x)&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>name:</strong> The name of the var or an expression who's name will become the var.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The new variable node.</p>
</blockquote>
</div>
</section>
<section id="rename_table">
<input id="rename_table-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">rename_table</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Table">sqlglot.expressions.Table</a></span>,</span><span class="param"> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Table">sqlglot.expressions.Table</a></span></span><span class="return-annotation">) -> <span class="n"><a href="#AlterTable">sqlglot.expressions.AlterTable</a></span>:</span></span>
<label class="view-source-button" for="rename_table-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#rename_table"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-5469"><a href="#rename_table-5469"><span class="linenos">5469</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">AlterTable</span><span class="p">:</span>
</span><span id="rename_table-5470"><a href="#rename_table-5470"><span class="linenos">5470</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Build ALTER TABLE... RENAME... expression</span>
</span><span id="rename_table-5471"><a href="#rename_table-5471"><span class="linenos">5471</span></a>
</span><span id="rename_table-5472"><a href="#rename_table-5472"><span class="linenos">5472</span></a><span class="sd"> Args:</span>
</span><span id="rename_table-5473"><a href="#rename_table-5473"><span class="linenos">5473</span></a><span class="sd"> old_name: The old name of the table</span>
</span><span id="rename_table-5474"><a href="#rename_table-5474"><span class="linenos">5474</span></a><span class="sd"> new_name: The new name of the table</span>
</span><span id="rename_table-5475"><a href="#rename_table-5475"><span class="linenos">5475</span></a>
</span><span id="rename_table-5476"><a href="#rename_table-5476"><span class="linenos">5476</span></a><span class="sd"> Returns:</span>
</span><span id="rename_table-5477"><a href="#rename_table-5477"><span class="linenos">5477</span></a><span class="sd"> Alter table expression</span>
</span><span id="rename_table-5478"><a href="#rename_table-5478"><span class="linenos">5478</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="rename_table-5479"><a href="#rename_table-5479"><span class="linenos">5479</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span>
</span><span id="rename_table-5480"><a href="#rename_table-5480"><span class="linenos">5480</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
</span><span id="rename_table-5481"><a href="#rename_table-5481"><span class="linenos">5481</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span>
</span><span id="rename_table-5482"><a href="#rename_table-5482"><span class="linenos">5482</span></a> <span class="n">this</span><span class="o">=</span><span class="n">old_table</span><span class="p">,</span>
</span><span id="rename_table-5483"><a href="#rename_table-5483"><span class="linenos">5483</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span>
</span><span id="rename_table-5484"><a href="#rename_table-5484"><span class="linenos">5484</span></a> <span class="n">RenameTable</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">new_table</span><span class="p">),</span>
</span><span id="rename_table-5485"><a href="#rename_table-5485"><span class="linenos">5485</span></a> <span class="p">],</span>
</span><span id="rename_table-5486"><a href="#rename_table-5486"><span class="linenos">5486</span></a> <span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Build ALTER TABLE... RENAME... expression</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>old_name:</strong> The old name of the table</li>
<li><strong>new_name:</strong> The new name of the table</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Alter table expression</p>
</blockquote>
</div>
</section>
<section id="convert">
<input id="convert-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">convert</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">value</span><span class="p">:</span> <span class="n">Any</span>, </span><span class="param"><span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span>
<label class="view-source-button" for="convert-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#convert"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="convert-5489"><a href="#convert-5489"><span class="linenos">5489</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="convert-5490"><a href="#convert-5490"><span class="linenos">5490</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Convert a python value into an expression object.</span>
</span><span id="convert-5491"><a href="#convert-5491"><span class="linenos">5491</span></a>
</span><span id="convert-5492"><a href="#convert-5492"><span class="linenos">5492</span></a><span class="sd"> Raises an error if a conversion is not possible.</span>
</span><span id="convert-5493"><a href="#convert-5493"><span class="linenos">5493</span></a>
</span><span id="convert-5494"><a href="#convert-5494"><span class="linenos">5494</span></a><span class="sd"> Args:</span>
</span><span id="convert-5495"><a href="#convert-5495"><span class="linenos">5495</span></a><span class="sd"> value: A python object.</span>
</span><span id="convert-5496"><a href="#convert-5496"><span class="linenos">5496</span></a><span class="sd"> copy: Whether or not to copy `value` (only applies to Expressions and collections).</span>
</span><span id="convert-5497"><a href="#convert-5497"><span class="linenos">5497</span></a>
</span><span id="convert-5498"><a href="#convert-5498"><span class="linenos">5498</span></a><span class="sd"> Returns:</span>
</span><span id="convert-5499"><a href="#convert-5499"><span class="linenos">5499</span></a><span class="sd"> Expression: the equivalent expression object.</span>
</span><span id="convert-5500"><a href="#convert-5500"><span class="linenos">5500</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="convert-5501"><a href="#convert-5501"><span class="linenos">5501</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="convert-5502"><a href="#convert-5502"><span class="linenos">5502</span></a> <span class="k">return</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span>
</span><span id="convert-5503"><a href="#convert-5503"><span class="linenos">5503</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
</span><span id="convert-5504"><a href="#convert-5504"><span class="linenos">5504</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
</span><span id="convert-5505"><a href="#convert-5505"><span class="linenos">5505</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span>
</span><span id="convert-5506"><a href="#convert-5506"><span class="linenos">5506</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">)</span>
</span><span id="convert-5507"><a href="#convert-5507"><span class="linenos">5507</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">)):</span>
</span><span id="convert-5508"><a href="#convert-5508"><span class="linenos">5508</span></a> <span class="k">return</span> <span class="n">NULL</span>
</span><span id="convert-5509"><a href="#convert-5509"><span class="linenos">5509</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">numbers</span><span class="o">.</span><span class="n">Number</span><span class="p">):</span>
</span><span id="convert-5510"><a href="#convert-5510"><span class="linenos">5510</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
</span><span id="convert-5511"><a href="#convert-5511"><span class="linenos">5511</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">):</span>
</span><span id="convert-5512"><a href="#convert-5512"><span class="linenos">5512</span></a> <span class="n">datetime_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span>
</span><span id="convert-5513"><a href="#convert-5513"><span class="linenos">5513</span></a> <span class="p">(</span><span class="n">value</span> <span class="k">if</span> <span class="n">value</span><span class="o">.</span><span class="n">tzinfo</span> <span class="k">else</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">tzinfo</span><span class="o">=</span><span class="n">datetime</span><span class="o">.</span><span class="n">timezone</span><span class="o">.</span><span class="n">utc</span><span class="p">))</span><span class="o">.</span><span class="n">isoformat</span><span class="p">()</span>
</span><span id="convert-5514"><a href="#convert-5514"><span class="linenos">5514</span></a> <span class="p">)</span>
</span><span id="convert-5515"><a href="#convert-5515"><span class="linenos">5515</span></a> <span class="k">return</span> <span class="n">TimeStrToTime</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">datetime_literal</span><span class="p">)</span>
</span><span id="convert-5516"><a href="#convert-5516"><span class="linenos">5516</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="p">):</span>
</span><span id="convert-5517"><a href="#convert-5517"><span class="linenos">5517</span></a> <span class="n">date_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span class="s2">&quot;</span><span class="p">))</span>
</span><span id="convert-5518"><a href="#convert-5518"><span class="linenos">5518</span></a> <span class="k">return</span> <span class="n">DateStrToDate</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">date_literal</span><span class="p">)</span>
</span><span id="convert-5519"><a href="#convert-5519"><span class="linenos">5519</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">):</span>
</span><span id="convert-5520"><a href="#convert-5520"><span class="linenos">5520</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
</span><span id="convert-5521"><a href="#convert-5521"><span class="linenos">5521</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
</span><span id="convert-5522"><a href="#convert-5522"><span class="linenos">5522</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span>
</span><span id="convert-5523"><a href="#convert-5523"><span class="linenos">5523</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
</span><span id="convert-5524"><a href="#convert-5524"><span class="linenos">5524</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span>
</span><span id="convert-5525"><a href="#convert-5525"><span class="linenos">5525</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span>
</span><span id="convert-5526"><a href="#convert-5526"><span class="linenos">5526</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span>
</span><span id="convert-5527"><a href="#convert-5527"><span class="linenos">5527</span></a> <span class="p">)</span>
</span><span id="convert-5528"><a href="#convert-5528"><span class="linenos">5528</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot convert </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Convert a python value into an expression object.</p>
<p>Raises an error if a conversion is not possible.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>value:</strong> A python object.</li>
<li><strong>copy:</strong> Whether or not to copy <code>value</code> (only applies to Expressions and collections).</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>Expression: the equivalent expression object.</p>
</blockquote>
</div>
</section>
<section id="replace_children">
<input id="replace_children-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">replace_children</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">fun</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="o">*</span><span class="n">args</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="kc">None</span>:</span></span>
<label class="view-source-button" for="replace_children-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#replace_children"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="replace_children-5531"><a href="#replace_children-5531"><span class="linenos">5531</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
</span><span id="replace_children-5532"><a href="#replace_children-5532"><span class="linenos">5532</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="replace_children-5533"><a href="#replace_children-5533"><span class="linenos">5533</span></a><span class="sd"> Replace children of an expression with the result of a lambda fun(child) -&gt; exp.</span>
</span><span id="replace_children-5534"><a href="#replace_children-5534"><span class="linenos">5534</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="replace_children-5535"><a href="#replace_children-5535"><span class="linenos">5535</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
</span><span id="replace_children-5536"><a href="#replace_children-5536"><span class="linenos">5536</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="ow">is</span> <span class="nb">list</span>
</span><span id="replace_children-5537"><a href="#replace_children-5537"><span class="linenos">5537</span></a>
</span><span id="replace_children-5538"><a href="#replace_children-5538"><span class="linenos">5538</span></a> <span class="n">child_nodes</span> <span class="o">=</span> <span class="n">v</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="p">[</span><span class="n">v</span><span class="p">]</span>
</span><span id="replace_children-5539"><a href="#replace_children-5539"><span class="linenos">5539</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span>
</span><span id="replace_children-5540"><a href="#replace_children-5540"><span class="linenos">5540</span></a>
</span><span id="replace_children-5541"><a href="#replace_children-5541"><span class="linenos">5541</span></a> <span class="k">for</span> <span class="n">cn</span> <span class="ow">in</span> <span class="n">child_nodes</span><span class="p">:</span>
</span><span id="replace_children-5542"><a href="#replace_children-5542"><span class="linenos">5542</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="replace_children-5543"><a href="#replace_children-5543"><span class="linenos">5543</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)):</span>
</span><span id="replace_children-5544"><a href="#replace_children-5544"><span class="linenos">5544</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_node</span><span class="p">)</span>
</span><span id="replace_children-5545"><a href="#replace_children-5545"><span class="linenos">5545</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span>
</span><span id="replace_children-5546"><a href="#replace_children-5546"><span class="linenos">5546</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span>
</span><span id="replace_children-5547"><a href="#replace_children-5547"><span class="linenos">5547</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="replace_children-5548"><a href="#replace_children-5548"><span class="linenos">5548</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cn</span><span class="p">)</span>
</span><span id="replace_children-5549"><a href="#replace_children-5549"><span class="linenos">5549</span></a>
</span><span id="replace_children-5550"><a href="#replace_children-5550"><span class="linenos">5550</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Replace children of an expression with the result of a lambda fun(child) -> exp.</p>
</div>
</section>
<section id="column_table_names">
<input id="column_table_names-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">column_table_names</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">expression</span><span class="p">:</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span></span><span class="return-annotation">) -> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span>:</span></span>
<label class="view-source-button" for="column_table_names-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#column_table_names"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-5553"><a href="#column_table_names-5553"><span class="linenos">5553</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
</span><span id="column_table_names-5554"><a href="#column_table_names-5554"><span class="linenos">5554</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="column_table_names-5555"><a href="#column_table_names-5555"><span class="linenos">5555</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span>
</span><span id="column_table_names-5556"><a href="#column_table_names-5556"><span class="linenos">5556</span></a>
</span><span id="column_table_names-5557"><a href="#column_table_names-5557"><span class="linenos">5557</span></a><span class="sd"> Example:</span>
</span><span id="column_table_names-5558"><a href="#column_table_names-5558"><span class="linenos">5558</span></a><span class="sd"> &gt;&gt;&gt; import sqlglot</span>
</span><span id="column_table_names-5559"><a href="#column_table_names-5559"><span class="linenos">5559</span></a><span class="sd"> &gt;&gt;&gt; column_table_names(sqlglot.parse_one(&quot;a.b AND c.d AND c.e&quot;))</span>
</span><span id="column_table_names-5560"><a href="#column_table_names-5560"><span class="linenos">5560</span></a><span class="sd"> [&#39;c&#39;, &#39;a&#39;]</span>
</span><span id="column_table_names-5561"><a href="#column_table_names-5561"><span class="linenos">5561</span></a>
</span><span id="column_table_names-5562"><a href="#column_table_names-5562"><span class="linenos">5562</span></a><span class="sd"> Args:</span>
</span><span id="column_table_names-5563"><a href="#column_table_names-5563"><span class="linenos">5563</span></a><span class="sd"> expression: expression to find table names.</span>
</span><span id="column_table_names-5564"><a href="#column_table_names-5564"><span class="linenos">5564</span></a>
</span><span id="column_table_names-5565"><a href="#column_table_names-5565"><span class="linenos">5565</span></a><span class="sd"> Returns:</span>
</span><span id="column_table_names-5566"><a href="#column_table_names-5566"><span class="linenos">5566</span></a><span class="sd"> A list of unique names.</span>
</span><span id="column_table_names-5567"><a href="#column_table_names-5567"><span class="linenos">5567</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="column_table_names-5568"><a href="#column_table_names-5568"><span class="linenos">5568</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span>
</span></pre></div>
<div class="docstring"><p>Return all table names referenced through columns in an expression.</p>
<h6 id="example">Example:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">import</span> <span class="nn">sqlglot</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">column_table_names</span><span class="p">(</span><span class="n"><a href="../sqlglot.html#parse_one">sqlglot.parse_one</a></span><span class="p">(</span><span class="s2">&quot;a.b AND c.d AND c.e&quot;</span><span class="p">))</span>
<span class="go">[&#39;c&#39;, &#39;a&#39;]</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> expression to find table names.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>A list of unique names.</p>
</blockquote>
</div>
</section>
<section id="table_name">
<input id="table_name-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">table_name</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">table</span><span class="p">:</span> <span class="n"><a href="#Table">sqlglot.expressions.Table</a></span> <span class="o">|</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
<label class="view-source-button" for="table_name-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#table_name"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="table_name-5571"><a href="#table_name-5571"><span class="linenos">5571</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">:</span> <span class="n">Table</span> <span class="o">|</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">str</span><span class="p">:</span>
</span><span id="table_name-5572"><a href="#table_name-5572"><span class="linenos">5572</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Get the full name of a table as a string.</span>
</span><span id="table_name-5573"><a href="#table_name-5573"><span class="linenos">5573</span></a>
</span><span id="table_name-5574"><a href="#table_name-5574"><span class="linenos">5574</span></a><span class="sd"> Args:</span>
</span><span id="table_name-5575"><a href="#table_name-5575"><span class="linenos">5575</span></a><span class="sd"> table: table expression node or string.</span>
</span><span id="table_name-5576"><a href="#table_name-5576"><span class="linenos">5576</span></a>
</span><span id="table_name-5577"><a href="#table_name-5577"><span class="linenos">5577</span></a><span class="sd"> Examples:</span>
</span><span id="table_name-5578"><a href="#table_name-5578"><span class="linenos">5578</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
</span><span id="table_name-5579"><a href="#table_name-5579"><span class="linenos">5579</span></a><span class="sd"> &gt;&gt;&gt; table_name(parse_one(&quot;select * from a.b.c&quot;).find(exp.Table))</span>
</span><span id="table_name-5580"><a href="#table_name-5580"><span class="linenos">5580</span></a><span class="sd"> &#39;a.b.c&#39;</span>
</span><span id="table_name-5581"><a href="#table_name-5581"><span class="linenos">5581</span></a>
</span><span id="table_name-5582"><a href="#table_name-5582"><span class="linenos">5582</span></a><span class="sd"> Returns:</span>
</span><span id="table_name-5583"><a href="#table_name-5583"><span class="linenos">5583</span></a><span class="sd"> The table name.</span>
</span><span id="table_name-5584"><a href="#table_name-5584"><span class="linenos">5584</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="table_name-5585"><a href="#table_name-5585"><span class="linenos">5585</span></a>
</span><span id="table_name-5586"><a href="#table_name-5586"><span class="linenos">5586</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span>
</span><span id="table_name-5587"><a href="#table_name-5587"><span class="linenos">5587</span></a>
</span><span id="table_name-5588"><a href="#table_name-5588"><span class="linenos">5588</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span>
</span><span id="table_name-5589"><a href="#table_name-5589"><span class="linenos">5589</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;Cannot parse </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
</span><span id="table_name-5590"><a href="#table_name-5590"><span class="linenos">5590</span></a>
</span><span id="table_name-5591"><a href="#table_name-5591"><span class="linenos">5591</span></a> <span class="k">return</span> <span class="s2">&quot;.&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">part</span> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span><span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;catalog&quot;</span><span class="p">),</span> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">&quot;db&quot;</span><span class="p">),</span> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">part</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Get the full name of a table as a string.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>table:</strong> table expression node or string.</li>
</ul>
<h6 id="examples">Examples:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">exp</span><span class="p">,</span> <span class="n">parse_one</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">table_name</span><span class="p">(</span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;select * from a.b.c&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">))</span>
<span class="go">&#39;a.b.c&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The table name.</p>
</blockquote>
</div>
</section>
<section id="replace_tables">
<input id="replace_tables-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">replace_tables</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">expression</span><span class="p">:</span> <span class="o">~</span><span class="n">E</span>, </span><span class="param"><span class="n">mapping</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span></span><span class="return-annotation">) -> <span class="o">~</span><span class="n">E</span>:</span></span>
<label class="view-source-button" for="replace_tables-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#replace_tables"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-5594"><a href="#replace_tables-5594"><span class="linenos">5594</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">E</span><span class="p">,</span> <span class="n">mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">E</span><span class="p">:</span>
</span><span id="replace_tables-5595"><a href="#replace_tables-5595"><span class="linenos">5595</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace all tables in expression according to the mapping.</span>
</span><span id="replace_tables-5596"><a href="#replace_tables-5596"><span class="linenos">5596</span></a>
</span><span id="replace_tables-5597"><a href="#replace_tables-5597"><span class="linenos">5597</span></a><span class="sd"> Args:</span>
</span><span id="replace_tables-5598"><a href="#replace_tables-5598"><span class="linenos">5598</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
</span><span id="replace_tables-5599"><a href="#replace_tables-5599"><span class="linenos">5599</span></a><span class="sd"> mapping: mapping of table names.</span>
</span><span id="replace_tables-5600"><a href="#replace_tables-5600"><span class="linenos">5600</span></a>
</span><span id="replace_tables-5601"><a href="#replace_tables-5601"><span class="linenos">5601</span></a><span class="sd"> Examples:</span>
</span><span id="replace_tables-5602"><a href="#replace_tables-5602"><span class="linenos">5602</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
</span><span id="replace_tables-5603"><a href="#replace_tables-5603"><span class="linenos">5603</span></a><span class="sd"> &gt;&gt;&gt; replace_tables(parse_one(&quot;select * from a.b&quot;), {&quot;a.b&quot;: &quot;c&quot;}).sql()</span>
</span><span id="replace_tables-5604"><a href="#replace_tables-5604"><span class="linenos">5604</span></a><span class="sd"> &#39;SELECT * FROM c&#39;</span>
</span><span id="replace_tables-5605"><a href="#replace_tables-5605"><span class="linenos">5605</span></a>
</span><span id="replace_tables-5606"><a href="#replace_tables-5606"><span class="linenos">5606</span></a><span class="sd"> Returns:</span>
</span><span id="replace_tables-5607"><a href="#replace_tables-5607"><span class="linenos">5607</span></a><span class="sd"> The mapped expression.</span>
</span><span id="replace_tables-5608"><a href="#replace_tables-5608"><span class="linenos">5608</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="replace_tables-5609"><a href="#replace_tables-5609"><span class="linenos">5609</span></a>
</span><span id="replace_tables-5610"><a href="#replace_tables-5610"><span class="linenos">5610</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="replace_tables-5611"><a href="#replace_tables-5611"><span class="linenos">5611</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
</span><span id="replace_tables-5612"><a href="#replace_tables-5612"><span class="linenos">5612</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span>
</span><span id="replace_tables-5613"><a href="#replace_tables-5613"><span class="linenos">5613</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
</span><span id="replace_tables-5614"><a href="#replace_tables-5614"><span class="linenos">5614</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span>
</span><span id="replace_tables-5615"><a href="#replace_tables-5615"><span class="linenos">5615</span></a> <span class="n">new_name</span><span class="p">,</span>
</span><span id="replace_tables-5616"><a href="#replace_tables-5616"><span class="linenos">5616</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">&quot;this&quot;</span><span class="p">,</span> <span class="s2">&quot;db&quot;</span><span class="p">,</span> <span class="s2">&quot;catalog&quot;</span><span class="p">)},</span>
</span><span id="replace_tables-5617"><a href="#replace_tables-5617"><span class="linenos">5617</span></a> <span class="p">)</span>
</span><span id="replace_tables-5618"><a href="#replace_tables-5618"><span class="linenos">5618</span></a> <span class="k">return</span> <span class="n">node</span>
</span><span id="replace_tables-5619"><a href="#replace_tables-5619"><span class="linenos">5619</span></a>
</span><span id="replace_tables-5620"><a href="#replace_tables-5620"><span class="linenos">5620</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Replace all tables in expression according to the mapping.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> expression node to be transformed and replaced.</li>
<li><strong>mapping:</strong> mapping of table names.</li>
</ul>
<h6 id="examples">Examples:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">exp</span><span class="p">,</span> <span class="n">parse_one</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">replace_tables</span><span class="p">(</span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;select * from a.b&quot;</span><span class="p">),</span> <span class="p">{</span><span class="s2">&quot;a.b&quot;</span><span class="p">:</span> <span class="s2">&quot;c&quot;</span><span class="p">})</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT * FROM c&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The mapped expression.</p>
</blockquote>
</div>
</section>
<section id="replace_placeholders">
<input id="replace_placeholders-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">replace_placeholders</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="o">*</span><span class="n">args</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span>
<label class="view-source-button" for="replace_placeholders-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#replace_placeholders"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="replace_placeholders-5623"><a href="#replace_placeholders-5623"><span class="linenos">5623</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="replace_placeholders-5624"><a href="#replace_placeholders-5624"><span class="linenos">5624</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Replace placeholders in an expression.</span>
</span><span id="replace_placeholders-5625"><a href="#replace_placeholders-5625"><span class="linenos">5625</span></a>
</span><span id="replace_placeholders-5626"><a href="#replace_placeholders-5626"><span class="linenos">5626</span></a><span class="sd"> Args:</span>
</span><span id="replace_placeholders-5627"><a href="#replace_placeholders-5627"><span class="linenos">5627</span></a><span class="sd"> expression: expression node to be transformed and replaced.</span>
</span><span id="replace_placeholders-5628"><a href="#replace_placeholders-5628"><span class="linenos">5628</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span>
</span><span id="replace_placeholders-5629"><a href="#replace_placeholders-5629"><span class="linenos">5629</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span>
</span><span id="replace_placeholders-5630"><a href="#replace_placeholders-5630"><span class="linenos">5630</span></a>
</span><span id="replace_placeholders-5631"><a href="#replace_placeholders-5631"><span class="linenos">5631</span></a><span class="sd"> Examples:</span>
</span><span id="replace_placeholders-5632"><a href="#replace_placeholders-5632"><span class="linenos">5632</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import exp, parse_one</span>
</span><span id="replace_placeholders-5633"><a href="#replace_placeholders-5633"><span class="linenos">5633</span></a><span class="sd"> &gt;&gt;&gt; replace_placeholders(</span>
</span><span id="replace_placeholders-5634"><a href="#replace_placeholders-5634"><span class="linenos">5634</span></a><span class="sd"> ... parse_one(&quot;select * from :tbl where ? = ?&quot;),</span>
</span><span id="replace_placeholders-5635"><a href="#replace_placeholders-5635"><span class="linenos">5635</span></a><span class="sd"> ... exp.to_identifier(&quot;str_col&quot;), &quot;b&quot;, tbl=exp.to_identifier(&quot;foo&quot;)</span>
</span><span id="replace_placeholders-5636"><a href="#replace_placeholders-5636"><span class="linenos">5636</span></a><span class="sd"> ... ).sql()</span>
</span><span id="replace_placeholders-5637"><a href="#replace_placeholders-5637"><span class="linenos">5637</span></a><span class="sd"> &quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
</span><span id="replace_placeholders-5638"><a href="#replace_placeholders-5638"><span class="linenos">5638</span></a>
</span><span id="replace_placeholders-5639"><a href="#replace_placeholders-5639"><span class="linenos">5639</span></a><span class="sd"> Returns:</span>
</span><span id="replace_placeholders-5640"><a href="#replace_placeholders-5640"><span class="linenos">5640</span></a><span class="sd"> The mapped expression.</span>
</span><span id="replace_placeholders-5641"><a href="#replace_placeholders-5641"><span class="linenos">5641</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="replace_placeholders-5642"><a href="#replace_placeholders-5642"><span class="linenos">5642</span></a>
</span><span id="replace_placeholders-5643"><a href="#replace_placeholders-5643"><span class="linenos">5643</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="replace_placeholders-5644"><a href="#replace_placeholders-5644"><span class="linenos">5644</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Placeholder</span><span class="p">):</span>
</span><span id="replace_placeholders-5645"><a href="#replace_placeholders-5645"><span class="linenos">5645</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span>
</span><span id="replace_placeholders-5646"><a href="#replace_placeholders-5646"><span class="linenos">5646</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
</span><span id="replace_placeholders-5647"><a href="#replace_placeholders-5647"><span class="linenos">5647</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span>
</span><span id="replace_placeholders-5648"><a href="#replace_placeholders-5648"><span class="linenos">5648</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span>
</span><span id="replace_placeholders-5649"><a href="#replace_placeholders-5649"><span class="linenos">5649</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="replace_placeholders-5650"><a href="#replace_placeholders-5650"><span class="linenos">5650</span></a> <span class="k">try</span><span class="p">:</span>
</span><span id="replace_placeholders-5651"><a href="#replace_placeholders-5651"><span class="linenos">5651</span></a> <span class="k">return</span> <span class="n">convert</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span>
</span><span id="replace_placeholders-5652"><a href="#replace_placeholders-5652"><span class="linenos">5652</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span>
</span><span id="replace_placeholders-5653"><a href="#replace_placeholders-5653"><span class="linenos">5653</span></a> <span class="k">pass</span>
</span><span id="replace_placeholders-5654"><a href="#replace_placeholders-5654"><span class="linenos">5654</span></a> <span class="k">return</span> <span class="n">node</span>
</span><span id="replace_placeholders-5655"><a href="#replace_placeholders-5655"><span class="linenos">5655</span></a>
</span><span id="replace_placeholders-5656"><a href="#replace_placeholders-5656"><span class="linenos">5656</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_placeholders</span><span class="p">,</span> <span class="nb">iter</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Replace placeholders in an expression.</p>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> expression node to be transformed and replaced.</li>
<li><strong>args:</strong> positional names that will substitute unnamed placeholders in the given order.</li>
<li><strong>kwargs:</strong> keyword arguments that will substitute named placeholders.</li>
</ul>
<h6 id="examples">Examples:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">exp</span><span class="p">,</span> <span class="n">parse_one</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">replace_placeholders</span><span class="p">(</span>
<span class="gp">... </span> <span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;select * from :tbl where ? = ?&quot;</span><span class="p">),</span>
<span class="gp">... </span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="s2">&quot;str_col&quot;</span><span class="p">),</span> <span class="s2">&quot;b&quot;</span><span class="p">,</span> <span class="n">tbl</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="s2">&quot;foo&quot;</span><span class="p">)</span>
<span class="gp">... </span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&quot;SELECT * FROM foo WHERE str_col = &#39;b&#39;&quot;</span>
</code></pre>
</div>
</blockquote>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The mapped expression.</p>
</blockquote>
</div>
</section>
<section id="expand">
<input id="expand-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">expand</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">sources</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Subqueryable">sqlglot.expressions.Subqueryable</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span>
<label class="view-source-button" for="expand-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#expand"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="expand-5659"><a href="#expand-5659"><span class="linenos">5659</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span>
</span><span id="expand-5660"><a href="#expand-5660"><span class="linenos">5660</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>
</span><span id="expand-5661"><a href="#expand-5661"><span class="linenos">5661</span></a><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Expression</span><span class="p">:</span>
</span><span id="expand-5662"><a href="#expand-5662"><span class="linenos">5662</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;Transforms an expression by expanding all referenced sources into subqueries.</span>
</span><span id="expand-5663"><a href="#expand-5663"><span class="linenos">5663</span></a>
</span><span id="expand-5664"><a href="#expand-5664"><span class="linenos">5664</span></a><span class="sd"> Examples:</span>
</span><span id="expand-5665"><a href="#expand-5665"><span class="linenos">5665</span></a><span class="sd"> &gt;&gt;&gt; from sqlglot import parse_one</span>
</span><span id="expand-5666"><a href="#expand-5666"><span class="linenos">5666</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;)}).sql()</span>
</span><span id="expand-5667"><a href="#expand-5667"><span class="linenos">5667</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
</span><span id="expand-5668"><a href="#expand-5668"><span class="linenos">5668</span></a>
</span><span id="expand-5669"><a href="#expand-5669"><span class="linenos">5669</span></a><span class="sd"> &gt;&gt;&gt; expand(parse_one(&quot;select * from x AS z&quot;), {&quot;x&quot;: parse_one(&quot;select * from y&quot;), &quot;y&quot;: parse_one(&quot;select * from z&quot;)}).sql()</span>
</span><span id="expand-5670"><a href="#expand-5670"><span class="linenos">5670</span></a><span class="sd"> &#39;SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */&#39;</span>
</span><span id="expand-5671"><a href="#expand-5671"><span class="linenos">5671</span></a>
</span><span id="expand-5672"><a href="#expand-5672"><span class="linenos">5672</span></a><span class="sd"> Args:</span>
</span><span id="expand-5673"><a href="#expand-5673"><span class="linenos">5673</span></a><span class="sd"> expression: The expression to expand.</span>
</span><span id="expand-5674"><a href="#expand-5674"><span class="linenos">5674</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span>
</span><span id="expand-5675"><a href="#expand-5675"><span class="linenos">5675</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span>
</span><span id="expand-5676"><a href="#expand-5676"><span class="linenos">5676</span></a>
</span><span id="expand-5677"><a href="#expand-5677"><span class="linenos">5677</span></a><span class="sd"> Returns:</span>
</span><span id="expand-5678"><a href="#expand-5678"><span class="linenos">5678</span></a><span class="sd"> The transformed expression.</span>
</span><span id="expand-5679"><a href="#expand-5679"><span class="linenos">5679</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="expand-5680"><a href="#expand-5680"><span class="linenos">5680</span></a>
</span><span id="expand-5681"><a href="#expand-5681"><span class="linenos">5681</span></a> <span class="k">def</span> <span class="nf">_expand</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">):</span>
</span><span id="expand-5682"><a href="#expand-5682"><span class="linenos">5682</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span>
</span><span id="expand-5683"><a href="#expand-5683"><span class="linenos">5683</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span>
</span><span id="expand-5684"><a href="#expand-5684"><span class="linenos">5684</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
</span><span id="expand-5685"><a href="#expand-5685"><span class="linenos">5685</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span>
</span><span id="expand-5686"><a href="#expand-5686"><span class="linenos">5686</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="n">name</span><span class="p">)</span>
</span><span id="expand-5687"><a href="#expand-5687"><span class="linenos">5687</span></a> <span class="n">subquery</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">&quot;source: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">]</span>
</span><span id="expand-5688"><a href="#expand-5688"><span class="linenos">5688</span></a> <span class="k">return</span> <span class="n">subquery</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</span><span id="expand-5689"><a href="#expand-5689"><span class="linenos">5689</span></a> <span class="k">return</span> <span class="n">node</span>
</span><span id="expand-5690"><a href="#expand-5690"><span class="linenos">5690</span></a>
</span><span id="expand-5691"><a href="#expand-5691"><span class="linenos">5691</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Transforms an expression by expanding all referenced sources into subqueries.</p>
<h6 id="examples">Examples:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">expand</span><span class="p">(</span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;select * from x AS z&quot;</span><span class="p">),</span> <span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;select * from y&quot;</span><span class="p">)})</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT * FROM (SELECT * FROM y) AS z /* source: x */&#39;</span>
</code></pre>
</div>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">expand</span><span class="p">(</span><span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;select * from x AS z&quot;</span><span class="p">),</span> <span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;select * from y&quot;</span><span class="p">),</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">parse_one</span><span class="p">(</span><span class="s2">&quot;select * from z&quot;</span><span class="p">)})</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;SELECT * FROM (SELECT * FROM (SELECT * FROM z) AS y /* source: y */) AS z /* source: x */&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>expression:</strong> The expression to expand.</li>
<li><strong>sources:</strong> A dictionary of name to Subqueryables.</li>
<li><strong>copy:</strong> Whether or not to copy the expression during transformation. Defaults to True.</li>
</ul>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>The transformed expression.</p>
</blockquote>
</div>
</section>
<section id="func">
<input id="func-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">func</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="o">*</span><span class="n">args</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Func">sqlglot.expressions.Func</a></span>:</span></span>
<label class="view-source-button" for="func-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#func"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="func-5694"><a href="#func-5694"><span class="linenos">5694</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Func</span><span class="p">:</span>
</span><span id="func-5695"><a href="#func-5695"><span class="linenos">5695</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="func-5696"><a href="#func-5696"><span class="linenos">5696</span></a><span class="sd"> Returns a Func expression.</span>
</span><span id="func-5697"><a href="#func-5697"><span class="linenos">5697</span></a>
</span><span id="func-5698"><a href="#func-5698"><span class="linenos">5698</span></a><span class="sd"> Examples:</span>
</span><span id="func-5699"><a href="#func-5699"><span class="linenos">5699</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;abs&quot;, 5).sql()</span>
</span><span id="func-5700"><a href="#func-5700"><span class="linenos">5700</span></a><span class="sd"> &#39;ABS(5)&#39;</span>
</span><span id="func-5701"><a href="#func-5701"><span class="linenos">5701</span></a>
</span><span id="func-5702"><a href="#func-5702"><span class="linenos">5702</span></a><span class="sd"> &gt;&gt;&gt; func(&quot;cast&quot;, this=5, to=DataType.build(&quot;DOUBLE&quot;)).sql()</span>
</span><span id="func-5703"><a href="#func-5703"><span class="linenos">5703</span></a><span class="sd"> &#39;CAST(5 AS DOUBLE)&#39;</span>
</span><span id="func-5704"><a href="#func-5704"><span class="linenos">5704</span></a>
</span><span id="func-5705"><a href="#func-5705"><span class="linenos">5705</span></a><span class="sd"> Args:</span>
</span><span id="func-5706"><a href="#func-5706"><span class="linenos">5706</span></a><span class="sd"> name: the name of the function to build.</span>
</span><span id="func-5707"><a href="#func-5707"><span class="linenos">5707</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span>
</span><span id="func-5708"><a href="#func-5708"><span class="linenos">5708</span></a><span class="sd"> dialect: the source dialect.</span>
</span><span id="func-5709"><a href="#func-5709"><span class="linenos">5709</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span>
</span><span id="func-5710"><a href="#func-5710"><span class="linenos">5710</span></a>
</span><span id="func-5711"><a href="#func-5711"><span class="linenos">5711</span></a><span class="sd"> Note:</span>
</span><span id="func-5712"><a href="#func-5712"><span class="linenos">5712</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span>
</span><span id="func-5713"><a href="#func-5713"><span class="linenos">5713</span></a>
</span><span id="func-5714"><a href="#func-5714"><span class="linenos">5714</span></a><span class="sd"> Returns:</span>
</span><span id="func-5715"><a href="#func-5715"><span class="linenos">5715</span></a><span class="sd"> An instance of the function of interest, or an anonymous function, if `name` doesn&#39;t</span>
</span><span id="func-5716"><a href="#func-5716"><span class="linenos">5716</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span>
</span><span id="func-5717"><a href="#func-5717"><span class="linenos">5717</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="func-5718"><a href="#func-5718"><span class="linenos">5718</span></a> <span class="k">if</span> <span class="n">args</span> <span class="ow">and</span> <span class="n">kwargs</span><span class="p">:</span>
</span><span id="func-5719"><a href="#func-5719"><span class="linenos">5719</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">&quot;Can&#39;t use both args and kwargs to instantiate a function.&quot;</span><span class="p">)</span>
</span><span id="func-5720"><a href="#func-5720"><span class="linenos">5720</span></a>
</span><span id="func-5721"><a href="#func-5721"><span class="linenos">5721</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</span>
</span><span id="func-5722"><a href="#func-5722"><span class="linenos">5722</span></a>
</span><span id="func-5723"><a href="#func-5723"><span class="linenos">5723</span></a> <span class="n">converted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span>
</span><span id="func-5724"><a href="#func-5724"><span class="linenos">5724</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span>
</span><span id="func-5725"><a href="#func-5725"><span class="linenos">5725</span></a>
</span><span id="func-5726"><a href="#func-5726"><span class="linenos">5726</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span>
</span><span id="func-5727"><a href="#func-5727"><span class="linenos">5727</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
</span><span id="func-5728"><a href="#func-5728"><span class="linenos">5728</span></a>
</span><span id="func-5729"><a href="#func-5729"><span class="linenos">5729</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span>
</span><span id="func-5730"><a href="#func-5730"><span class="linenos">5730</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span>
</span><span id="func-5731"><a href="#func-5731"><span class="linenos">5731</span></a> <span class="k">else</span><span class="p">:</span>
</span><span id="func-5732"><a href="#func-5732"><span class="linenos">5732</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span> <span class="ow">or</span> <span class="p">{</span><span class="s2">&quot;expressions&quot;</span><span class="p">:</span> <span class="n">converted</span><span class="p">}</span>
</span><span id="func-5733"><a href="#func-5733"><span class="linenos">5733</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">Anonymous</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
</span><span id="func-5734"><a href="#func-5734"><span class="linenos">5734</span></a>
</span><span id="func-5735"><a href="#func-5735"><span class="linenos">5735</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">function</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">converted</span><span class="p">):</span>
</span><span id="func-5736"><a href="#func-5736"><span class="linenos">5736</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span>
</span><span id="func-5737"><a href="#func-5737"><span class="linenos">5737</span></a>
</span><span id="func-5738"><a href="#func-5738"><span class="linenos">5738</span></a> <span class="k">return</span> <span class="n">function</span>
</span></pre></div>
<div class="docstring"><p>Returns a Func expression.</p>
<h6 id="examples">Examples:</h6>
<blockquote>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;abs&quot;</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;ABS(5)&#39;</span>
</code></pre>
</div>
<div class="pdoc-code codehilite">
<pre><span></span><code><span class="gp">&gt;&gt;&gt; </span><span class="n">func</span><span class="p">(</span><span class="s2">&quot;cast&quot;</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n"><a href="#DataType.build">DataType.build</a></span><span class="p">(</span><span class="s2">&quot;DOUBLE&quot;</span><span class="p">))</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span>
<span class="go">&#39;CAST(5 AS DOUBLE)&#39;</span>
</code></pre>
</div>
</blockquote>
<h6 id="arguments">Arguments:</h6>
<ul>
<li><strong>name:</strong> the name of the function to build.</li>
<li><strong>args:</strong> the args used to instantiate the function of interest.</li>
<li><strong>dialect:</strong> the source dialect.</li>
<li><strong>kwargs:</strong> the kwargs used to instantiate the function of interest.</li>
</ul>
<h6 id="note">Note:</h6>
<blockquote>
<p>The arguments <code>args</code> and <code>kwargs</code> are mutually exclusive.</p>
</blockquote>
<h6 id="returns">Returns:</h6>
<blockquote>
<p>An instance of the function of interest, or an anonymous function, if <code>name</code> doesn't
correspond to an existing <code><a href="#Func">sqlglot.expressions.Func</a></code> class.</p>
</blockquote>
</div>
</section>
<section id="true">
<input id="true-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">true</span><span class="signature pdoc-code condensed">(<span class="return-annotation">) -> <span class="n"><a href="#Boolean">sqlglot.expressions.Boolean</a></span>:</span></span>
<label class="view-source-button" for="true-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#true"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="true-5741"><a href="#true-5741"><span class="linenos">5741</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
</span><span id="true-5742"><a href="#true-5742"><span class="linenos">5742</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="true-5743"><a href="#true-5743"><span class="linenos">5743</span></a><span class="sd"> Returns a true Boolean expression.</span>
</span><span id="true-5744"><a href="#true-5744"><span class="linenos">5744</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="true-5745"><a href="#true-5745"><span class="linenos">5745</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Returns a true Boolean expression.</p>
</div>
</section>
<section id="false">
<input id="false-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">false</span><span class="signature pdoc-code condensed">(<span class="return-annotation">) -> <span class="n"><a href="#Boolean">sqlglot.expressions.Boolean</a></span>:</span></span>
<label class="view-source-button" for="false-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#false"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="false-5748"><a href="#false-5748"><span class="linenos">5748</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Boolean</span><span class="p">:</span>
</span><span id="false-5749"><a href="#false-5749"><span class="linenos">5749</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="false-5750"><a href="#false-5750"><span class="linenos">5750</span></a><span class="sd"> Returns a false Boolean expression.</span>
</span><span id="false-5751"><a href="#false-5751"><span class="linenos">5751</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="false-5752"><a href="#false-5752"><span class="linenos">5752</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
</span></pre></div>
<div class="docstring"><p>Returns a false Boolean expression.</p>
</div>
</section>
<section id="null">
<input id="null-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
<div class="attr function">
<span class="def">def</span>
<span class="name">null</span><span class="signature pdoc-code condensed">(<span class="return-annotation">) -> <span class="n"><a href="#Null">sqlglot.expressions.Null</a></span>:</span></span>
<label class="view-source-button" for="null-view-source"><span>View Source</span></label>
</div>
<a class="headerlink" href="#null"></a>
<div class="pdoc-code codehilite"><pre><span></span><span id="null-5755"><a href="#null-5755"><span class="linenos">5755</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="n">Null</span><span class="p">:</span>
</span><span id="null-5756"><a href="#null-5756"><span class="linenos">5756</span></a><span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
</span><span id="null-5757"><a href="#null-5757"><span class="linenos">5757</span></a><span class="sd"> Returns a Null expression.</span>
</span><span id="null-5758"><a href="#null-5758"><span class="linenos">5758</span></a><span class="sd"> &quot;&quot;&quot;</span>
</span><span id="null-5759"><a href="#null-5759"><span class="linenos">5759</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span>
</span></pre></div>
<div class="docstring"><p>Returns a Null expression.</p>
</div>
</section>
</main>
<script>
function escapeHTML(html) {
return document.createElement('div').appendChild(document.createTextNode(html)).parentNode.innerHTML;
}
const originalContent = document.querySelector("main.pdoc");
let currentContent = originalContent;
function setContent(innerHTML) {
let elem;
if (innerHTML) {
elem = document.createElement("main");
elem.classList.add("pdoc");
elem.innerHTML = innerHTML;
} else {
elem = originalContent;
}
if (currentContent !== elem) {
currentContent.replaceWith(elem);
currentContent = elem;
}
}
function getSearchTerm() {
return (new URL(window.location)).searchParams.get("search");
}
const searchBox = document.querySelector(".pdoc input[type=search]");
searchBox.addEventListener("input", function () {
let url = new URL(window.location);
if (searchBox.value.trim()) {
url.hash = "";
url.searchParams.set("search", searchBox.value);
} else {
url.searchParams.delete("search");
}
history.replaceState("", "", url.toString());
onInput();
});
window.addEventListener("popstate", onInput);
let search, searchErr;
async function initialize() {
try {
search = await new Promise((resolve, reject) => {
const script = document.createElement("script");
script.type = "text/javascript";
script.async = true;
script.onload = () => resolve(window.pdocSearch);
script.onerror = (e) => reject(e);
script.src = "../search.js";
document.getElementsByTagName("head")[0].appendChild(script);
});
} catch (e) {
console.error("Cannot fetch pdoc search index");
searchErr = "Cannot fetch search index.";
}
onInput();
document.querySelector("nav.pdoc").addEventListener("click", e => {
if (e.target.hash) {
searchBox.value = "";
searchBox.dispatchEvent(new Event("input"));
}
});
}
function onInput() {
setContent((() => {
const term = getSearchTerm();
if (!term) {
return null
}
if (searchErr) {
return `<h3>Error: ${searchErr}</h3>`
}
if (!search) {
return "<h3>Searching...</h3>"
}
window.scrollTo({top: 0, left: 0, behavior: 'auto'});
const results = search(term);
let html;
if (results.length === 0) {
html = `No search results for '${escapeHTML(term)}'.`
} else {
html = `<h4>${results.length} search result${results.length > 1 ? "s" : ""} for '${escapeHTML(term)}'.</h4>`;
}
for (let result of results.slice(0, 10)) {
let doc = result.doc;
let url = `../${doc.modulename.replaceAll(".", "/")}.html`;
if (doc.qualname) {
url += `#${doc.qualname}`;
}
let heading;
switch (result.doc.kind) {
case "function":
if (doc.fullname.endsWith(".__init__")) {
heading = `<span class="name">${doc.fullname.replace(/\.__init__$/, "")}</span>${doc.signature}`;
} else {
heading = `<span class="def">${doc.funcdef}</span> <span class="name">${doc.fullname}</span>${doc.signature}`;
}
break;
case "class":
heading = `<span class="def">class</span> <span class="name">${doc.fullname}</span>`;
if (doc.bases)
heading += `<wbr>(<span class="base">${doc.bases}</span>)`;
heading += `:`;
break;
case "variable":
heading = `<span class="name">${doc.fullname}</span>`;
if (doc.annotation)
heading += `<span class="annotation">${doc.annotation}</span>`;
if (doc.default_value)
heading += `<span class="default_value"> = ${doc.default_value}</span>`;
break;
default:
heading = `<span class="name">${doc.fullname}</span>`;
break;
}
html += `
<section class="search-result">
<a href="${url}" class="attr ${doc.kind}">${heading}</a>
<div class="docstring">${doc.doc}</div>
</section>
`;
}
return html;
})());
}
if (getSearchTerm()) {
initialize();
searchBox.value = getSearchTerm();
onInput();
} else {
searchBox.addEventListener("focus", initialize, {once: true});
}
searchBox.addEventListener("keydown", e => {
if (["ArrowDown", "ArrowUp", "Enter"].includes(e.key)) {
let focused = currentContent.querySelector(".search-result.focused");
if (!focused) {
currentContent.querySelector(".search-result").classList.add("focused");
} else if (
e.key === "ArrowDown"
&& focused.nextElementSibling
&& focused.nextElementSibling.classList.contains("search-result")
) {
focused.classList.remove("focused");
focused.nextElementSibling.classList.add("focused");
focused.nextElementSibling.scrollIntoView({
behavior: "smooth",
block: "nearest",
inline: "nearest"
});
} else if (
e.key === "ArrowUp"
&& focused.previousElementSibling
&& focused.previousElementSibling.classList.contains("search-result")
) {
focused.classList.remove("focused");
focused.previousElementSibling.classList.add("focused");
focused.previousElementSibling.scrollIntoView({
behavior: "smooth",
block: "nearest",
inline: "nearest"
});
} else if (
e.key === "Enter"
) {
focused.querySelector("a").click();
}
}
});
</script></body>
</html>