3573 lines
No EOL
633 KiB
HTML
3573 lines
No EOL
633 KiB
HTML
<!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 15.0.0"/>
|
|
<title>sqlglot.dialects.redshift 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; z-index:1}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 .alert{padding:1rem 1rem 1rem calc(1.5rem + 24px);border:1px solid transparent;border-radius:.25rem;background-repeat:no-repeat;background-position:.75rem center;margin-bottom:1rem;}.pdoc .alert > em{display:none;}.pdoc .alert > *:last-child{margin-bottom:0;}.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 .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 .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(--accent);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 .decorator-deprecated{color:#842029;}.pdoc .decorator-deprecated ~ span{filter:grayscale(1) opacity(0.8);}.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="../dialects.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> sqlglot.dialects</a>
|
|
|
|
|
|
<input type="search" placeholder="Search..." role="searchbox" aria-label="search"
|
|
pattern=".+" required>
|
|
|
|
|
|
|
|
<h2>API Documentation</h2>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="class" href="#Redshift">Redshift</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="variable" href="#Redshift.NORMALIZATION_STRATEGY">NORMALIZATION_STRATEGY</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.SUPPORTS_USER_DEFINED_TYPES">SUPPORTS_USER_DEFINED_TYPES</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.INDEX_OFFSET">INDEX_OFFSET</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.COPY_PARAMS_ARE_CSV">COPY_PARAMS_ARE_CSV</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.HEX_LOWERCASE">HEX_LOWERCASE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.HAS_DISTINCT_ARRAY_CONSTRUCTORS">HAS_DISTINCT_ARRAY_CONSTRUCTORS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.TIME_FORMAT">TIME_FORMAT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.TIME_MAPPING">TIME_MAPPING</a>
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#Redshift.Parser">Redshift.Parser</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="variable" href="#Redshift.Parser.FUNCTIONS">FUNCTIONS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Parser.NO_PAREN_FUNCTION_PARSERS">NO_PAREN_FUNCTION_PARSERS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Parser.SUPPORTS_IMPLICIT_UNNEST">SUPPORTS_IMPLICIT_UNNEST</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Parser.ID_VAR_TOKENS">ID_VAR_TOKENS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Parser.TABLE_ALIAS_TOKENS">TABLE_ALIAS_TOKENS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Parser.SHOW_TRIE">SHOW_TRIE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Parser.SET_TRIE">SET_TRIE</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#Redshift.Tokenizer">Redshift.Tokenizer</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="variable" href="#Redshift.Tokenizer.BIT_STRINGS">BIT_STRINGS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Tokenizer.HEX_STRINGS">HEX_STRINGS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Tokenizer.STRING_ESCAPES">STRING_ESCAPES</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Tokenizer.KEYWORDS">KEYWORDS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Tokenizer.SINGLE_TOKENS">SINGLE_TOKENS</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#Redshift.Generator">Redshift.Generator</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.LOCKING_READS_SUPPORTED">LOCKING_READS_SUPPORTED</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.QUERY_HINTS">QUERY_HINTS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.VALUES_AS_TABLE">VALUES_AS_TABLE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.TZ_TO_WITH_TIME_ZONE">TZ_TO_WITH_TIME_ZONE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.NVL2_SUPPORTED">NVL2_SUPPORTED</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.LAST_DAY_SUPPORTS_DATE_PART">LAST_DAY_SUPPORTS_DATE_PART</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.CAN_IMPLEMENT_ARRAY_ANY">CAN_IMPLEMENT_ARRAY_ANY</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.MULTI_ARG_DISTINCT">MULTI_ARG_DISTINCT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.COPY_PARAMS_ARE_WRAPPED">COPY_PARAMS_ARE_WRAPPED</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.HEX_FUNC">HEX_FUNC</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.PARSE_JSON_NAME">PARSE_JSON_NAME</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.ARRAY_CONCAT_IS_VAR_LEN">ARRAY_CONCAT_IS_VAR_LEN</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.SUPPORTS_CONVERT_TIMEZONE">SUPPORTS_CONVERT_TIMEZONE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.EXCEPT_INTERSECT_SUPPORT_ALL_CLAUSE">EXCEPT_INTERSECT_SUPPORT_ALL_CLAUSE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.SUPPORTS_MEDIAN">SUPPORTS_MEDIAN</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.WITH_PROPERTIES_PREFIX">WITH_PROPERTIES_PREFIX</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.TYPE_MAPPING">TYPE_MAPPING</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.TRANSFORMS">TRANSFORMS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.RESERVED_KEYWORDS">RESERVED_KEYWORDS</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Redshift.Generator.unnest_sql">unnest_sql</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Redshift.Generator.cast_sql">cast_sql</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Redshift.Generator.datatype_sql">datatype_sql</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Redshift.Generator.alterset_sql">alterset_sql</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Redshift.Generator.array_sql">array_sql</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Redshift.Generator.explode_sql">explode_sql</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.SELECT_KINDS">SELECT_KINDS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.TRY_SUPPORTED">TRY_SUPPORTED</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.SUPPORTS_UESCAPE">SUPPORTS_UESCAPE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.Generator.AFTER_HAVING_MODIFIER_TRANSFORMS">AFTER_HAVING_MODIFIER_TRANSFORMS</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.SUPPORTS_COLUMN_JOIN_MARKS">SUPPORTS_COLUMN_JOIN_MARKS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.UNESCAPED_SEQUENCES">UNESCAPED_SEQUENCES</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.tokenizer_class">tokenizer_class</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.jsonpath_tokenizer_class">jsonpath_tokenizer_class</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.parser_class">parser_class</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.generator_class">generator_class</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.TIME_TRIE">TIME_TRIE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.FORMAT_TRIE">FORMAT_TRIE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.INVERSE_TIME_MAPPING">INVERSE_TIME_MAPPING</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.INVERSE_TIME_TRIE">INVERSE_TIME_TRIE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.INVERSE_FORMAT_MAPPING">INVERSE_FORMAT_MAPPING</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.INVERSE_FORMAT_TRIE">INVERSE_FORMAT_TRIE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.INVERSE_CREATABLE_KIND_MAPPING">INVERSE_CREATABLE_KIND_MAPPING</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.ESCAPED_SEQUENCES">ESCAPED_SEQUENCES</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.QUOTE_START">QUOTE_START</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.QUOTE_END">QUOTE_END</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.IDENTIFIER_START">IDENTIFIER_START</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.IDENTIFIER_END">IDENTIFIER_END</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.BIT_START">BIT_START</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.BIT_END">BIT_END</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.HEX_START">HEX_START</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.HEX_END">HEX_END</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.BYTE_START">BYTE_START</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.BYTE_END">BYTE_END</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.UNICODE_START">UNICODE_START</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Redshift.UNICODE_END">UNICODE_END</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</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/dialects/redshift.py">Edit on GitHub</a>
|
|
<h1 class="modulename">
|
|
<a href="./../../sqlglot.html">sqlglot</a><wbr>.<a href="./../dialects.html">dialects</a><wbr>.redshift </h1>
|
|
|
|
|
|
<input id="mod-redshift-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
|
|
<label class="view-source-button" for="mod-redshift-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="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="n">annotations</span>
|
|
</span><span id="L-2"><a href="#L-2"><span class="linenos"> 2</span></a>
|
|
</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</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-4"><a href="#L-4"><span class="linenos"> 4</span></a>
|
|
</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><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">transforms</span>
|
|
</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="p">(</span>
|
|
</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a> <span class="n">NormalizationStrategy</span><span class="p">,</span>
|
|
</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> <span class="n">concat_to_dpipe_sql</span><span class="p">,</span>
|
|
</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> <span class="n">concat_ws_to_dpipe_sql</span><span class="p">,</span>
|
|
</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a> <span class="n">date_delta_sql</span><span class="p">,</span>
|
|
</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a> <span class="n">generatedasidentitycolumnconstraint_sql</span><span class="p">,</span>
|
|
</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a> <span class="n">json_extract_segments</span><span class="p">,</span>
|
|
</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a> <span class="n">no_tablesample_sql</span><span class="p">,</span>
|
|
</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a> <span class="n">rename_func</span><span class="p">,</span>
|
|
</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> <span class="n">map_date_part</span><span class="p">,</span>
|
|
</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="p">)</span>
|
|
</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="kn">from</span> <span class="nn">sqlglot.dialects.postgres</span> <span class="kn">import</span> <span class="n">Postgres</span>
|
|
</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="n">seq_get</span>
|
|
</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="kn">from</span> <span class="nn">sqlglot.tokens</span> <span class="kn">import</span> <span class="n">TokenType</span>
|
|
</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="kn">from</span> <span class="nn">sqlglot.parser</span> <span class="kn">import</span> <span class="n">build_convert_timezone</span>
|
|
</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a>
|
|
</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</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-23"><a href="#L-23"><span class="linenos"> 23</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-24"><a href="#L-24"><span class="linenos"> 24</span></a>
|
|
</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a>
|
|
</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a><span class="k">def</span> <span class="nf">_build_date_delta</span><span class="p">(</span><span class="n">expr_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">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</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">E</span><span class="p">]:</span>
|
|
</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="k">def</span> <span class="nf">_builder</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">List</span><span class="p">)</span> <span class="o">-></span> <span class="n">E</span><span class="p">:</span>
|
|
</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="n">expr</span> <span class="o">=</span> <span class="n">expr_type</span><span class="p">(</span>
|
|
</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="n">this</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span>
|
|
</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
|
|
</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">map_date_part</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">)),</span>
|
|
</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="p">)</span>
|
|
</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="k">if</span> <span class="n">expr_type</span> <span class="ow">is</span> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span>
|
|
</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="n">expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"return_type"</span><span class="p">,</span> <span class="n">exp</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="s2">"TIMESTAMP"</span><span class="p">))</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">return</span> <span class="n">expr</span>
|
|
</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a>
|
|
</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="k">return</span> <span class="n">_builder</span>
|
|
</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><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a><span class="k">class</span> <span class="nc">Redshift</span><span class="p">(</span><span class="n">Postgres</span><span class="p">):</span>
|
|
</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_names.html</span>
|
|
</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="n">NORMALIZATION_STRATEGY</span> <span class="o">=</span> <span class="n">NormalizationStrategy</span><span class="o">.</span><span class="n">CASE_INSENSITIVE</span>
|
|
</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a>
|
|
</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="n">SUPPORTS_USER_DEFINED_TYPES</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="n">INDEX_OFFSET</span> <span class="o">=</span> <span class="mi">0</span>
|
|
</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="n">COPY_PARAMS_ARE_CSV</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="n">HEX_LOWERCASE</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="n">HAS_DISTINCT_ARRAY_CONSTRUCTORS</span> <span class="o">=</span> <span class="kc">True</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="c1"># ref: https://docs.aws.amazon.com/redshift/latest/dg/r_FORMAT_strings.html</span>
|
|
</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="n">TIME_FORMAT</span> <span class="o">=</span> <span class="s2">"'YYYY-MM-DD HH24:MI:SS'"</span>
|
|
</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="n">TIME_MAPPING</span> <span class="o">=</span> <span class="p">{</span><span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">TIME_MAPPING</span><span class="p">,</span> <span class="s2">"MON"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> <span class="s2">"HH24"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> <span class="s2">"HH"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">}</span>
|
|
</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a>
|
|
</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span>
|
|
</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span>
|
|
</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="s2">"ADD_MONTHS"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">(</span>
|
|
</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="n">this</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
|
|
</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
|
|
</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="s2">"month"</span><span class="p">),</span>
|
|
</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="n">return_type</span><span class="o">=</span><span class="n">exp</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="s2">"TIMESTAMP"</span><span class="p">),</span>
|
|
</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="p">),</span>
|
|
</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="s2">"CONVERT_TIMEZONE"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">build_convert_timezone</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="s2">"UTC"</span><span class="p">),</span>
|
|
</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="s2">"DATEADD"</span><span class="p">:</span> <span class="n">_build_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">),</span>
|
|
</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="s2">"DATE_ADD"</span><span class="p">:</span> <span class="n">_build_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">),</span>
|
|
</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="s2">"DATEDIFF"</span><span class="p">:</span> <span class="n">_build_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsDiff</span><span class="p">),</span>
|
|
</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="s2">"DATE_DIFF"</span><span class="p">:</span> <span class="n">_build_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsDiff</span><span class="p">),</span>
|
|
</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="s2">"GETDATE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span>
|
|
</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="s2">"LISTAGG"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span>
|
|
</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="s2">"SPLIT_TO_ARRAY"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">StringToArray</span><span class="p">(</span>
|
|
</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">this</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="ow">or</span> <span class="n">exp</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">","</span><span class="p">)</span>
|
|
</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="p">),</span>
|
|
</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="s2">"STRTOL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">FromBase</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span>
|
|
</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="p">}</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="n">NO_PAREN_FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTION_PARSERS</span><span class="p">,</span>
|
|
</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="s2">"APPROXIMATE"</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_approximate_count</span><span class="p">(),</span>
|
|
</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="s2">"SYSDATE"</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">,</span> <span class="n">sysdate</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span>
|
|
</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="p">}</span>
|
|
</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a>
|
|
</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="n">SUPPORTS_IMPLICIT_UNNEST</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a>
|
|
</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="k">def</span> <span class="nf">_parse_table</span><span class="p">(</span>
|
|
</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">schema</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-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="n">joins</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-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">alias_tokens</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">Collection</span><span class="p">[</span><span class="n">TokenType</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">parse_bracket</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-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="n">is_db_reference</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-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">parse_partition</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-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]:</span>
|
|
</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="c1"># Redshift supports UNPIVOTing SUPER objects, e.g. `UNPIVOT foo.obj[0] AS val AT attr`</span>
|
|
</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="n">unpivot</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">UNPIVOT</span><span class="p">)</span>
|
|
</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">table</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span>
|
|
</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">,</span>
|
|
</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="n">joins</span><span class="o">=</span><span class="n">joins</span><span class="p">,</span>
|
|
</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="n">alias_tokens</span><span class="o">=</span><span class="n">alias_tokens</span><span class="p">,</span>
|
|
</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="n">parse_bracket</span><span class="o">=</span><span class="n">parse_bracket</span><span class="p">,</span>
|
|
</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="n">is_db_reference</span><span class="o">=</span><span class="n">is_db_reference</span><span class="p">,</span>
|
|
</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="p">)</span>
|
|
</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a>
|
|
</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Pivot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">table</span><span class="p">,</span> <span class="n">unpivot</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">if</span> <span class="n">unpivot</span> <span class="k">else</span> <span class="n">table</span>
|
|
</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a>
|
|
</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="k">def</span> <span class="nf">_parse_convert</span><span class="p">(</span>
|
|
</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">strict</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">safe</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><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]:</span>
|
|
</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="n">to</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">()</span>
|
|
</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">COMMA</span><span class="p">)</span>
|
|
</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">()</span>
|
|
</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TryCast</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">to</span><span class="o">=</span><span class="n">to</span><span class="p">,</span> <span class="n">safe</span><span class="o">=</span><span class="n">safe</span><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="nf">_parse_approximate_count</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">]:</span>
|
|
</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">-</span> <span class="mi">1</span>
|
|
</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="n">func</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</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">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Count</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">):</span>
|
|
</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
|
|
</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_retreat</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
|
|
</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="k">return</span> <span class="kc">None</span>
|
|
</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a>
|
|
</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span>
|
|
</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="n">BIT_STRINGS</span> <span class="o">=</span> <span class="p">[]</span>
|
|
</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[]</span>
|
|
</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="n">STRING_ESCAPES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"</span><span class="se">\\</span><span class="s2">"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">]</span>
|
|
</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a>
|
|
</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="p">,</span>
|
|
</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="s2">"(+)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">JOIN_MARKER</span><span class="p">,</span>
|
|
</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="s2">"HLLSKETCH"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">HLLSKETCH</span><span class="p">,</span>
|
|
</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="s2">"MINUS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXCEPT</span><span class="p">,</span>
|
|
</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="s2">"SUPER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SUPER</span><span class="p">,</span>
|
|
</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="s2">"TOP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span>
|
|
</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="s2">"UNLOAD"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span>
|
|
</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="s2">"VARBYTE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARBINARY</span><span class="p">,</span>
|
|
</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="s2">"BINARY VARYING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARBINARY</span><span class="p">,</span>
|
|
</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="p">}</span>
|
|
</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="n">KEYWORDS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"VALUES"</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="c1"># Redshift allows # to appear as a table identifier prefix</span>
|
|
</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="n">Postgres</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
|
|
</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="n">SINGLE_TOKENS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"#"</span><span class="p">)</span>
|
|
</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a>
|
|
</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span>
|
|
</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="n">QUERY_HINTS</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="n">VALUES_AS_TABLE</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="n">TZ_TO_WITH_TIME_ZONE</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="n">NVL2_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="n">LAST_DAY_SUPPORTS_DATE_PART</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="n">CAN_IMPLEMENT_ARRAY_ANY</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="n">MULTI_ARG_DISTINCT</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="n">COPY_PARAMS_ARE_WRAPPED</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="n">HEX_FUNC</span> <span class="o">=</span> <span class="s2">"TO_HEX"</span>
|
|
</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="n">PARSE_JSON_NAME</span> <span class="o">=</span> <span class="s2">"JSON_PARSE"</span>
|
|
</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="n">ARRAY_CONCAT_IS_VAR_LEN</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="n">SUPPORTS_CONVERT_TIMEZONE</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="n">EXCEPT_INTERSECT_SUPPORT_ALL_CLAUSE</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="n">SUPPORTS_MEDIAN</span> <span class="o">=</span> <span class="kc">True</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="c1"># Redshift doesn't have `WITH` as part of their with_properties so we remove it</span>
|
|
</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="n">WITH_PROPERTIES_PREFIX</span> <span class="o">=</span> <span class="s2">" "</span>
|
|
</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a>
|
|
</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="p">,</span>
|
|
</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="n">exp</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="n">BINARY</span><span class="p">:</span> <span class="s2">"VARBYTE"</span><span class="p">,</span>
|
|
</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="n">exp</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="n">INT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span>
|
|
</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="n">exp</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="n">TIMETZ</span><span class="p">:</span> <span class="s2">"TIME"</span><span class="p">,</span>
|
|
</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="n">exp</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="n">TIMESTAMPTZ</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span>
|
|
</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="n">exp</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="n">VARBINARY</span><span class="p">:</span> <span class="s2">"VARBYTE"</span><span class="p">,</span>
|
|
</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> <span class="n">exp</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="n">ROWVERSION</span><span class="p">:</span> <span class="s2">"VARBYTE"</span><span class="p">,</span>
|
|
</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="p">}</span>
|
|
</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a>
|
|
</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span>
|
|
</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">arrayconcat_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"ARRAY_CONCAT"</span><span class="p">),</span>
|
|
</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Concat</span><span class="p">:</span> <span class="n">concat_to_dpipe_sql</span><span class="p">,</span>
|
|
</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ConcatWs</span><span class="p">:</span> <span class="n">concat_ws_to_dpipe_sql</span><span class="p">,</span>
|
|
</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"APPROXIMATE COUNT(DISTINCT </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span>
|
|
</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="p">(</span>
|
|
</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="s2">"SYSDATE"</span> <span class="k">if</span> <span class="n">e</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">"sysdate"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"GETDATE()"</span>
|
|
</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="p">),</span>
|
|
</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">date_delta_sql</span><span class="p">(</span><span class="s2">"DATEADD"</span><span class="p">),</span>
|
|
</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">date_delta_sql</span><span class="p">(</span><span class="s2">"DATEDIFF"</span><span class="p">),</span>
|
|
</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistKeyProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"DISTKEY"</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
|
|
</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistStyleProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">naked_property</span><span class="p">(</span><span class="n">e</span><span class="p">),</span>
|
|
</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">explode_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span>
|
|
</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FromBase</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STRTOL"</span><span class="p">),</span>
|
|
</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span><span class="p">:</span> <span class="n">generatedasidentitycolumnconstraint_sql</span><span class="p">,</span>
|
|
</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">json_extract_segments</span><span class="p">(</span><span class="s2">"JSON_EXTRACT_PATH_TEXT"</span><span class="p">),</span>
|
|
</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">json_extract_segments</span><span class="p">(</span><span class="s2">"JSON_EXTRACT_PATH_TEXT"</span><span class="p">),</span>
|
|
</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LISTAGG"</span><span class="p">),</span>
|
|
</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"UPPER"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TO_HEX"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))),</span>
|
|
</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">preprocess</span><span class="p">(</span>
|
|
</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="p">[</span>
|
|
</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="n">transforms</span><span class="o">.</span><span class="n">eliminate_distinct_on</span><span class="p">,</span>
|
|
</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="n">transforms</span><span class="o">.</span><span class="n">eliminate_semi_and_anti_joins</span><span class="p">,</span>
|
|
</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="n">transforms</span><span class="o">.</span><span class="n">unqualify_unnest</span><span class="p">,</span>
|
|
</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="n">transforms</span><span class="o">.</span><span class="n">unnest_generate_date_array_using_recursive_cte</span><span class="p">,</span>
|
|
</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="p">]</span>
|
|
</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a> <span class="p">),</span>
|
|
</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortKeyProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'COMPOUND '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s1">'compound'</span><span class="p">]</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}</span><span class="s2">SORTKEY(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</span><span class="o">*</span><span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span>
|
|
</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StartsWith</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2"> LIKE </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> || '%'"</span><span class="p">,</span>
|
|
</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StringToArray</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SPLIT_TO_ARRAY"</span><span class="p">),</span>
|
|
</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableSample</span><span class="p">:</span> <span class="n">no_tablesample_sql</span><span class="p">,</span>
|
|
</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">date_delta_sql</span><span class="p">(</span><span class="s2">"DATEADD"</span><span class="p">),</span>
|
|
</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsDiff</span><span class="p">:</span> <span class="n">date_delta_sql</span><span class="p">(</span><span class="s2">"DATEDIFF"</span><span class="p">),</span>
|
|
</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"(TIMESTAMP 'epoch' + </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2"> * INTERVAL '1 SECOND')"</span><span class="p">,</span>
|
|
</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> <span class="p">}</span>
|
|
</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a>
|
|
</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="c1"># Postgres maps exp.Pivot to no_pivot_sql, but Redshift support pivots</span>
|
|
</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Pivot</span><span class="p">)</span>
|
|
</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a>
|
|
</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> <span class="c1"># Postgres doesn't support JSON_PARSE, but Redshift does</span>
|
|
</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ParseJSON</span><span class="p">)</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="c1"># Redshift uses the POW | POWER (expr1, expr2) syntax instead of expr1 ^ expr2 (postgres)</span>
|
|
</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Pow</span><span class="p">)</span>
|
|
</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a>
|
|
</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> <span class="c1"># Redshift supports these functions</span>
|
|
</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">AnyValue</span><span class="p">)</span>
|
|
</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LastDay</span><span class="p">)</span>
|
|
</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SHA2</span><span class="p">)</span>
|
|
</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a>
|
|
</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="n">RESERVED_KEYWORDS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="s2">"aes128"</span><span class="p">,</span>
|
|
</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="s2">"aes256"</span><span class="p">,</span>
|
|
</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <span class="s2">"all"</span><span class="p">,</span>
|
|
</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="s2">"allowoverwrite"</span><span class="p">,</span>
|
|
</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="s2">"analyse"</span><span class="p">,</span>
|
|
</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> <span class="s2">"analyze"</span><span class="p">,</span>
|
|
</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="s2">"and"</span><span class="p">,</span>
|
|
</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="s2">"any"</span><span class="p">,</span>
|
|
</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="s2">"array"</span><span class="p">,</span>
|
|
</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="s2">"as"</span><span class="p">,</span>
|
|
</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="s2">"asc"</span><span class="p">,</span>
|
|
</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> <span class="s2">"authorization"</span><span class="p">,</span>
|
|
</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="s2">"az64"</span><span class="p">,</span>
|
|
</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="s2">"backup"</span><span class="p">,</span>
|
|
</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="s2">"between"</span><span class="p">,</span>
|
|
</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="s2">"binary"</span><span class="p">,</span>
|
|
</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="s2">"blanksasnull"</span><span class="p">,</span>
|
|
</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="s2">"both"</span><span class="p">,</span>
|
|
</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="s2">"bytedict"</span><span class="p">,</span>
|
|
</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="s2">"bzip2"</span><span class="p">,</span>
|
|
</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="s2">"case"</span><span class="p">,</span>
|
|
</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="s2">"cast"</span><span class="p">,</span>
|
|
</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="s2">"check"</span><span class="p">,</span>
|
|
</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="s2">"collate"</span><span class="p">,</span>
|
|
</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="s2">"column"</span><span class="p">,</span>
|
|
</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="s2">"constraint"</span><span class="p">,</span>
|
|
</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="s2">"create"</span><span class="p">,</span>
|
|
</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="s2">"credentials"</span><span class="p">,</span>
|
|
</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="s2">"cross"</span><span class="p">,</span>
|
|
</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="s2">"current_date"</span><span class="p">,</span>
|
|
</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="s2">"current_time"</span><span class="p">,</span>
|
|
</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="s2">"current_timestamp"</span><span class="p">,</span>
|
|
</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="s2">"current_user"</span><span class="p">,</span>
|
|
</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="s2">"current_user_id"</span><span class="p">,</span>
|
|
</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="s2">"default"</span><span class="p">,</span>
|
|
</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="s2">"deferrable"</span><span class="p">,</span>
|
|
</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="s2">"deflate"</span><span class="p">,</span>
|
|
</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="s2">"defrag"</span><span class="p">,</span>
|
|
</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="s2">"delta"</span><span class="p">,</span>
|
|
</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="s2">"delta32k"</span><span class="p">,</span>
|
|
</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="s2">"desc"</span><span class="p">,</span>
|
|
</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="s2">"disable"</span><span class="p">,</span>
|
|
</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="s2">"distinct"</span><span class="p">,</span>
|
|
</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="s2">"do"</span><span class="p">,</span>
|
|
</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="s2">"else"</span><span class="p">,</span>
|
|
</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="s2">"emptyasnull"</span><span class="p">,</span>
|
|
</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="s2">"enable"</span><span class="p">,</span>
|
|
</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="s2">"encode"</span><span class="p">,</span>
|
|
</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="s2">"encrypt "</span><span class="p">,</span>
|
|
</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="s2">"encryption"</span><span class="p">,</span>
|
|
</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="s2">"end"</span><span class="p">,</span>
|
|
</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="s2">"except"</span><span class="p">,</span>
|
|
</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="s2">"explicit"</span><span class="p">,</span>
|
|
</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="s2">"false"</span><span class="p">,</span>
|
|
</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="s2">"for"</span><span class="p">,</span>
|
|
</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="s2">"foreign"</span><span class="p">,</span>
|
|
</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="s2">"freeze"</span><span class="p">,</span>
|
|
</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="s2">"from"</span><span class="p">,</span>
|
|
</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="s2">"full"</span><span class="p">,</span>
|
|
</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="s2">"globaldict256"</span><span class="p">,</span>
|
|
</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="s2">"globaldict64k"</span><span class="p">,</span>
|
|
</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="s2">"grant"</span><span class="p">,</span>
|
|
</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="s2">"group"</span><span class="p">,</span>
|
|
</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="s2">"gzip"</span><span class="p">,</span>
|
|
</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="s2">"having"</span><span class="p">,</span>
|
|
</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="s2">"identity"</span><span class="p">,</span>
|
|
</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="s2">"ignore"</span><span class="p">,</span>
|
|
</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="s2">"ilike"</span><span class="p">,</span>
|
|
</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="s2">"in"</span><span class="p">,</span>
|
|
</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="s2">"initially"</span><span class="p">,</span>
|
|
</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="s2">"inner"</span><span class="p">,</span>
|
|
</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="s2">"intersect"</span><span class="p">,</span>
|
|
</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="s2">"interval"</span><span class="p">,</span>
|
|
</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="s2">"into"</span><span class="p">,</span>
|
|
</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="s2">"is"</span><span class="p">,</span>
|
|
</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="s2">"isnull"</span><span class="p">,</span>
|
|
</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="s2">"join"</span><span class="p">,</span>
|
|
</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="s2">"leading"</span><span class="p">,</span>
|
|
</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="s2">"left"</span><span class="p">,</span>
|
|
</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="s2">"like"</span><span class="p">,</span>
|
|
</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="s2">"limit"</span><span class="p">,</span>
|
|
</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="s2">"localtime"</span><span class="p">,</span>
|
|
</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="s2">"localtimestamp"</span><span class="p">,</span>
|
|
</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="s2">"lun"</span><span class="p">,</span>
|
|
</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="s2">"luns"</span><span class="p">,</span>
|
|
</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="s2">"lzo"</span><span class="p">,</span>
|
|
</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="s2">"lzop"</span><span class="p">,</span>
|
|
</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="s2">"minus"</span><span class="p">,</span>
|
|
</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="s2">"mostly16"</span><span class="p">,</span>
|
|
</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> <span class="s2">"mostly32"</span><span class="p">,</span>
|
|
</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="s2">"mostly8"</span><span class="p">,</span>
|
|
</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="s2">"natural"</span><span class="p">,</span>
|
|
</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="s2">"new"</span><span class="p">,</span>
|
|
</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="s2">"not"</span><span class="p">,</span>
|
|
</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> <span class="s2">"notnull"</span><span class="p">,</span>
|
|
</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="s2">"null"</span><span class="p">,</span>
|
|
</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a> <span class="s2">"nulls"</span><span class="p">,</span>
|
|
</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="s2">"off"</span><span class="p">,</span>
|
|
</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="s2">"offline"</span><span class="p">,</span>
|
|
</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a> <span class="s2">"offset"</span><span class="p">,</span>
|
|
</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="s2">"oid"</span><span class="p">,</span>
|
|
</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> <span class="s2">"old"</span><span class="p">,</span>
|
|
</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> <span class="s2">"on"</span><span class="p">,</span>
|
|
</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> <span class="s2">"only"</span><span class="p">,</span>
|
|
</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> <span class="s2">"open"</span><span class="p">,</span>
|
|
</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> <span class="s2">"or"</span><span class="p">,</span>
|
|
</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="s2">"order"</span><span class="p">,</span>
|
|
</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="s2">"outer"</span><span class="p">,</span>
|
|
</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="s2">"overlaps"</span><span class="p">,</span>
|
|
</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="s2">"parallel"</span><span class="p">,</span>
|
|
</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> <span class="s2">"partition"</span><span class="p">,</span>
|
|
</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="s2">"percent"</span><span class="p">,</span>
|
|
</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="s2">"permissions"</span><span class="p">,</span>
|
|
</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="s2">"pivot"</span><span class="p">,</span>
|
|
</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="s2">"placing"</span><span class="p">,</span>
|
|
</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> <span class="s2">"primary"</span><span class="p">,</span>
|
|
</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="s2">"raw"</span><span class="p">,</span>
|
|
</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="s2">"readratio"</span><span class="p">,</span>
|
|
</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="s2">"recover"</span><span class="p">,</span>
|
|
</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="s2">"references"</span><span class="p">,</span>
|
|
</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="s2">"rejectlog"</span><span class="p">,</span>
|
|
</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> <span class="s2">"resort"</span><span class="p">,</span>
|
|
</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> <span class="s2">"respect"</span><span class="p">,</span>
|
|
</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a> <span class="s2">"restore"</span><span class="p">,</span>
|
|
</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> <span class="s2">"right"</span><span class="p">,</span>
|
|
</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a> <span class="s2">"select"</span><span class="p">,</span>
|
|
</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a> <span class="s2">"session_user"</span><span class="p">,</span>
|
|
</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a> <span class="s2">"similar"</span><span class="p">,</span>
|
|
</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a> <span class="s2">"snapshot"</span><span class="p">,</span>
|
|
</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a> <span class="s2">"some"</span><span class="p">,</span>
|
|
</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a> <span class="s2">"sysdate"</span><span class="p">,</span>
|
|
</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a> <span class="s2">"system"</span><span class="p">,</span>
|
|
</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a> <span class="s2">"table"</span><span class="p">,</span>
|
|
</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a> <span class="s2">"tag"</span><span class="p">,</span>
|
|
</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> <span class="s2">"tdes"</span><span class="p">,</span>
|
|
</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="s2">"text255"</span><span class="p">,</span>
|
|
</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> <span class="s2">"text32k"</span><span class="p">,</span>
|
|
</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> <span class="s2">"then"</span><span class="p">,</span>
|
|
</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="s2">"timestamp"</span><span class="p">,</span>
|
|
</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="s2">"to"</span><span class="p">,</span>
|
|
</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="s2">"top"</span><span class="p">,</span>
|
|
</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> <span class="s2">"trailing"</span><span class="p">,</span>
|
|
</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="s2">"true"</span><span class="p">,</span>
|
|
</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="s2">"truncatecolumns"</span><span class="p">,</span>
|
|
</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="s2">"type"</span><span class="p">,</span>
|
|
</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> <span class="s2">"union"</span><span class="p">,</span>
|
|
</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="s2">"unique"</span><span class="p">,</span>
|
|
</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="s2">"unnest"</span><span class="p">,</span>
|
|
</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> <span class="s2">"unpivot"</span><span class="p">,</span>
|
|
</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> <span class="s2">"user"</span><span class="p">,</span>
|
|
</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> <span class="s2">"using"</span><span class="p">,</span>
|
|
</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> <span class="s2">"verbose"</span><span class="p">,</span>
|
|
</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a> <span class="s2">"wallet"</span><span class="p">,</span>
|
|
</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> <span class="s2">"when"</span><span class="p">,</span>
|
|
</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a> <span class="s2">"where"</span><span class="p">,</span>
|
|
</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a> <span class="s2">"with"</span><span class="p">,</span>
|
|
</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> <span class="s2">"without"</span><span class="p">,</span>
|
|
</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a> <span class="p">}</span>
|
|
</span><span id="L-389"><a href="#L-389"><span class="linenos">389</span></a>
|
|
</span><span id="L-390"><a href="#L-390"><span class="linenos">390</span></a> <span class="k">def</span> <span class="nf">unnest_sql</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">exp</span><span class="o">.</span><span class="n">Unnest</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span>
|
|
</span><span id="L-392"><a href="#L-392"><span class="linenos">392</span></a> <span class="n">num_args</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
|
|
</span><span id="L-393"><a href="#L-393"><span class="linenos">393</span></a>
|
|
</span><span id="L-394"><a href="#L-394"><span class="linenos">394</span></a> <span class="k">if</span> <span class="n">num_args</span> <span class="o">!=</span> <span class="mi">1</span><span class="p">:</span>
|
|
</span><span id="L-395"><a href="#L-395"><span class="linenos">395</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported number of arguments in UNNEST: </span><span class="si">{</span><span class="n">num_args</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
</span><span id="L-396"><a href="#L-396"><span class="linenos">396</span></a> <span class="k">return</span> <span class="s2">""</span>
|
|
</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a>
|
|
</span><span id="L-398"><a href="#L-398"><span class="linenos">398</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">):</span>
|
|
</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported UNNEST when not used in FROM/JOIN clauses"</span><span class="p">)</span>
|
|
</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a> <span class="k">return</span> <span class="s2">""</span>
|
|
</span><span id="L-401"><a href="#L-401"><span class="linenos">401</span></a>
|
|
</span><span id="L-402"><a href="#L-402"><span class="linenos">402</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
|
|
</span><span id="L-403"><a href="#L-403"><span class="linenos">403</span></a>
|
|
</span><span id="L-404"><a href="#L-404"><span class="linenos">404</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">),</span> <span class="n">key</span><span class="o">=</span><span class="s2">"columns"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
</span><span id="L-405"><a href="#L-405"><span class="linenos">405</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">arg</span><span class="si">}</span><span class="s2"> AS </span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="n">arg</span>
|
|
</span><span id="L-406"><a href="#L-406"><span class="linenos">406</span></a>
|
|
</span><span id="L-407"><a href="#L-407"><span class="linenos">407</span></a> <span class="k">def</span> <span class="nf">cast_sql</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">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">,</span> <span class="n">safe_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 class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">exp</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="n">JSON</span><span class="p">):</span>
|
|
</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> <span class="c1"># Redshift doesn't support a JSON type, so casting to it is treated as a noop</span>
|
|
</span><span id="L-410"><a href="#L-410"><span class="linenos">410</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 class="n">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span>
|
|
</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a>
|
|
</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">cast_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">safe_prefix</span><span class="o">=</span><span class="n">safe_prefix</span><span class="p">)</span>
|
|
</span><span id="L-413"><a href="#L-413"><span class="linenos">413</span></a>
|
|
</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a> <span class="k">def</span> <span class="nf">datatype_sql</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">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a><span class="w"> </span><span class="sd">"""</span>
|
|
</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a><span class="sd"> Redshift converts the `TEXT` data type to `VARCHAR(255)` by default when people more generally mean</span>
|
|
</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a><span class="sd"> VARCHAR of max length which is `VARCHAR(max)` in Redshift. Therefore if we get a `TEXT` data type</span>
|
|
</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a><span class="sd"> without precision we convert it to `VARCHAR(max)` and if it does have precision then we just convert</span>
|
|
</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a><span class="sd"> `TEXT` to `VARCHAR`.</span>
|
|
</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a><span class="sd"> """</span>
|
|
</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="s2">"text"</span><span class="p">):</span>
|
|
</span><span id="L-422"><a href="#L-422"><span class="linenos">422</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"this"</span><span class="p">,</span> <span class="n">exp</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="n">VARCHAR</span><span class="p">)</span>
|
|
</span><span id="L-423"><a href="#L-423"><span class="linenos">423</span></a> <span class="n">precision</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">)</span>
|
|
</span><span id="L-424"><a href="#L-424"><span class="linenos">424</span></a>
|
|
</span><span id="L-425"><a href="#L-425"><span class="linenos">425</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">precision</span><span class="p">:</span>
|
|
</span><span id="L-426"><a href="#L-426"><span class="linenos">426</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="s2">"MAX"</span><span class="p">))</span>
|
|
</span><span id="L-427"><a href="#L-427"><span class="linenos">427</span></a>
|
|
</span><span id="L-428"><a href="#L-428"><span class="linenos">428</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">datatype_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
|
|
</span><span id="L-429"><a href="#L-429"><span class="linenos">429</span></a>
|
|
</span><span id="L-430"><a href="#L-430"><span class="linenos">430</span></a> <span class="k">def</span> <span class="nf">alterset_sql</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">exp</span><span class="o">.</span><span class="n">AlterSet</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="L-431"><a href="#L-431"><span class="linenos">431</span></a> <span class="n">exprs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a> <span class="n">exprs</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" TABLE PROPERTIES (</span><span class="si">{</span><span class="n">exprs</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">exprs</span> <span class="k">else</span> <span class="s2">""</span>
|
|
</span><span id="L-433"><a href="#L-433"><span class="linenos">433</span></a> <span class="n">location</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"location"</span><span class="p">)</span>
|
|
</span><span id="L-434"><a href="#L-434"><span class="linenos">434</span></a> <span class="n">location</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" LOCATION </span><span class="si">{</span><span class="n">location</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">location</span> <span class="k">else</span> <span class="s2">""</span>
|
|
</span><span id="L-435"><a href="#L-435"><span class="linenos">435</span></a> <span class="n">file_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">"file_format"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">)</span>
|
|
</span><span id="L-436"><a href="#L-436"><span class="linenos">436</span></a> <span class="n">file_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FILE FORMAT </span><span class="si">{</span><span class="n">file_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">file_format</span> <span class="k">else</span> <span class="s2">""</span>
|
|
</span><span id="L-437"><a href="#L-437"><span class="linenos">437</span></a>
|
|
</span><span id="L-438"><a href="#L-438"><span class="linenos">438</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SET</span><span class="si">{</span><span class="n">exprs</span><span class="si">}{</span><span class="n">location</span><span class="si">}{</span><span class="n">file_format</span><span class="si">}</span><span class="s2">"</span>
|
|
</span><span id="L-439"><a href="#L-439"><span class="linenos">439</span></a>
|
|
</span><span id="L-440"><a href="#L-440"><span class="linenos">440</span></a> <span class="k">def</span> <span class="nf">array_sql</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">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"bracket_notation"</span><span class="p">):</span>
|
|
</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">array_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
|
|
</span><span id="L-443"><a href="#L-443"><span class="linenos">443</span></a>
|
|
</span><span id="L-444"><a href="#L-444"><span class="linenos">444</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY"</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-445"><a href="#L-445"><span class="linenos">445</span></a>
|
|
</span><span id="L-446"><a href="#L-446"><span class="linenos">446</span></a> <span class="k">def</span> <span class="nf">explode_sql</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">exp</span><span class="o">.</span><span class="n">Explode</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="L-447"><a href="#L-447"><span class="linenos">447</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported EXPLODE() function"</span><span class="p">)</span>
|
|
</span><span id="L-448"><a href="#L-448"><span class="linenos">448</span></a> <span class="k">return</span> <span class="s2">""</span>
|
|
</span></pre></div>
|
|
|
|
|
|
</section>
|
|
<section id="Redshift">
|
|
<input id="Redshift-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<div class="attr class">
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">Redshift</span><wbr>(<span class="base"><a href="postgres.html#Postgres">sqlglot.dialects.postgres.Postgres</a></span>):
|
|
|
|
<label class="view-source-button" for="Redshift-view-source"><span>View Source</span></label>
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift"></a>
|
|
<div class="pdoc-code codehilite"><pre><span></span><span id="Redshift-42"><a href="#Redshift-42"><span class="linenos"> 42</span></a><span class="k">class</span> <span class="nc">Redshift</span><span class="p">(</span><span class="n">Postgres</span><span class="p">):</span>
|
|
</span><span id="Redshift-43"><a href="#Redshift-43"><span class="linenos"> 43</span></a> <span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_names.html</span>
|
|
</span><span id="Redshift-44"><a href="#Redshift-44"><span class="linenos"> 44</span></a> <span class="n">NORMALIZATION_STRATEGY</span> <span class="o">=</span> <span class="n">NormalizationStrategy</span><span class="o">.</span><span class="n">CASE_INSENSITIVE</span>
|
|
</span><span id="Redshift-45"><a href="#Redshift-45"><span class="linenos"> 45</span></a>
|
|
</span><span id="Redshift-46"><a href="#Redshift-46"><span class="linenos"> 46</span></a> <span class="n">SUPPORTS_USER_DEFINED_TYPES</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift-47"><a href="#Redshift-47"><span class="linenos"> 47</span></a> <span class="n">INDEX_OFFSET</span> <span class="o">=</span> <span class="mi">0</span>
|
|
</span><span id="Redshift-48"><a href="#Redshift-48"><span class="linenos"> 48</span></a> <span class="n">COPY_PARAMS_ARE_CSV</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift-49"><a href="#Redshift-49"><span class="linenos"> 49</span></a> <span class="n">HEX_LOWERCASE</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift-50"><a href="#Redshift-50"><span class="linenos"> 50</span></a> <span class="n">HAS_DISTINCT_ARRAY_CONSTRUCTORS</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift-51"><a href="#Redshift-51"><span class="linenos"> 51</span></a>
|
|
</span><span id="Redshift-52"><a href="#Redshift-52"><span class="linenos"> 52</span></a> <span class="c1"># ref: https://docs.aws.amazon.com/redshift/latest/dg/r_FORMAT_strings.html</span>
|
|
</span><span id="Redshift-53"><a href="#Redshift-53"><span class="linenos"> 53</span></a> <span class="n">TIME_FORMAT</span> <span class="o">=</span> <span class="s2">"'YYYY-MM-DD HH24:MI:SS'"</span>
|
|
</span><span id="Redshift-54"><a href="#Redshift-54"><span class="linenos"> 54</span></a> <span class="n">TIME_MAPPING</span> <span class="o">=</span> <span class="p">{</span><span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">TIME_MAPPING</span><span class="p">,</span> <span class="s2">"MON"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> <span class="s2">"HH24"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> <span class="s2">"HH"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">}</span>
|
|
</span><span id="Redshift-55"><a href="#Redshift-55"><span class="linenos"> 55</span></a>
|
|
</span><span id="Redshift-56"><a href="#Redshift-56"><span class="linenos"> 56</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span>
|
|
</span><span id="Redshift-57"><a href="#Redshift-57"><span class="linenos"> 57</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="Redshift-58"><a href="#Redshift-58"><span class="linenos"> 58</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span>
|
|
</span><span id="Redshift-59"><a href="#Redshift-59"><span class="linenos"> 59</span></a> <span class="s2">"ADD_MONTHS"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">(</span>
|
|
</span><span id="Redshift-60"><a href="#Redshift-60"><span class="linenos"> 60</span></a> <span class="n">this</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
|
|
</span><span id="Redshift-61"><a href="#Redshift-61"><span class="linenos"> 61</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
|
|
</span><span id="Redshift-62"><a href="#Redshift-62"><span class="linenos"> 62</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="s2">"month"</span><span class="p">),</span>
|
|
</span><span id="Redshift-63"><a href="#Redshift-63"><span class="linenos"> 63</span></a> <span class="n">return_type</span><span class="o">=</span><span class="n">exp</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="s2">"TIMESTAMP"</span><span class="p">),</span>
|
|
</span><span id="Redshift-64"><a href="#Redshift-64"><span class="linenos"> 64</span></a> <span class="p">),</span>
|
|
</span><span id="Redshift-65"><a href="#Redshift-65"><span class="linenos"> 65</span></a> <span class="s2">"CONVERT_TIMEZONE"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">build_convert_timezone</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="s2">"UTC"</span><span class="p">),</span>
|
|
</span><span id="Redshift-66"><a href="#Redshift-66"><span class="linenos"> 66</span></a> <span class="s2">"DATEADD"</span><span class="p">:</span> <span class="n">_build_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">),</span>
|
|
</span><span id="Redshift-67"><a href="#Redshift-67"><span class="linenos"> 67</span></a> <span class="s2">"DATE_ADD"</span><span class="p">:</span> <span class="n">_build_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">),</span>
|
|
</span><span id="Redshift-68"><a href="#Redshift-68"><span class="linenos"> 68</span></a> <span class="s2">"DATEDIFF"</span><span class="p">:</span> <span class="n">_build_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsDiff</span><span class="p">),</span>
|
|
</span><span id="Redshift-69"><a href="#Redshift-69"><span class="linenos"> 69</span></a> <span class="s2">"DATE_DIFF"</span><span class="p">:</span> <span class="n">_build_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsDiff</span><span class="p">),</span>
|
|
</span><span id="Redshift-70"><a href="#Redshift-70"><span class="linenos"> 70</span></a> <span class="s2">"GETDATE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span>
|
|
</span><span id="Redshift-71"><a href="#Redshift-71"><span class="linenos"> 71</span></a> <span class="s2">"LISTAGG"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span>
|
|
</span><span id="Redshift-72"><a href="#Redshift-72"><span class="linenos"> 72</span></a> <span class="s2">"SPLIT_TO_ARRAY"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">StringToArray</span><span class="p">(</span>
|
|
</span><span id="Redshift-73"><a href="#Redshift-73"><span class="linenos"> 73</span></a> <span class="n">this</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="ow">or</span> <span class="n">exp</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">","</span><span class="p">)</span>
|
|
</span><span id="Redshift-74"><a href="#Redshift-74"><span class="linenos"> 74</span></a> <span class="p">),</span>
|
|
</span><span id="Redshift-75"><a href="#Redshift-75"><span class="linenos"> 75</span></a> <span class="s2">"STRTOL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">FromBase</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span>
|
|
</span><span id="Redshift-76"><a href="#Redshift-76"><span class="linenos"> 76</span></a> <span class="p">}</span>
|
|
</span><span id="Redshift-77"><a href="#Redshift-77"><span class="linenos"> 77</span></a>
|
|
</span><span id="Redshift-78"><a href="#Redshift-78"><span class="linenos"> 78</span></a> <span class="n">NO_PAREN_FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="Redshift-79"><a href="#Redshift-79"><span class="linenos"> 79</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTION_PARSERS</span><span class="p">,</span>
|
|
</span><span id="Redshift-80"><a href="#Redshift-80"><span class="linenos"> 80</span></a> <span class="s2">"APPROXIMATE"</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_approximate_count</span><span class="p">(),</span>
|
|
</span><span id="Redshift-81"><a href="#Redshift-81"><span class="linenos"> 81</span></a> <span class="s2">"SYSDATE"</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">,</span> <span class="n">sysdate</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span>
|
|
</span><span id="Redshift-82"><a href="#Redshift-82"><span class="linenos"> 82</span></a> <span class="p">}</span>
|
|
</span><span id="Redshift-83"><a href="#Redshift-83"><span class="linenos"> 83</span></a>
|
|
</span><span id="Redshift-84"><a href="#Redshift-84"><span class="linenos"> 84</span></a> <span class="n">SUPPORTS_IMPLICIT_UNNEST</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift-85"><a href="#Redshift-85"><span class="linenos"> 85</span></a>
|
|
</span><span id="Redshift-86"><a href="#Redshift-86"><span class="linenos"> 86</span></a> <span class="k">def</span> <span class="nf">_parse_table</span><span class="p">(</span>
|
|
</span><span id="Redshift-87"><a href="#Redshift-87"><span class="linenos"> 87</span></a> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="Redshift-88"><a href="#Redshift-88"><span class="linenos"> 88</span></a> <span class="n">schema</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="Redshift-89"><a href="#Redshift-89"><span class="linenos"> 89</span></a> <span class="n">joins</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="Redshift-90"><a href="#Redshift-90"><span class="linenos"> 90</span></a> <span class="n">alias_tokens</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">Collection</span><span class="p">[</span><span class="n">TokenType</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
</span><span id="Redshift-91"><a href="#Redshift-91"><span class="linenos"> 91</span></a> <span class="n">parse_bracket</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="Redshift-92"><a href="#Redshift-92"><span class="linenos"> 92</span></a> <span class="n">is_db_reference</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="Redshift-93"><a href="#Redshift-93"><span class="linenos"> 93</span></a> <span class="n">parse_partition</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="Redshift-94"><a href="#Redshift-94"><span class="linenos"> 94</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]:</span>
|
|
</span><span id="Redshift-95"><a href="#Redshift-95"><span class="linenos"> 95</span></a> <span class="c1"># Redshift supports UNPIVOTing SUPER objects, e.g. `UNPIVOT foo.obj[0] AS val AT attr`</span>
|
|
</span><span id="Redshift-96"><a href="#Redshift-96"><span class="linenos"> 96</span></a> <span class="n">unpivot</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">UNPIVOT</span><span class="p">)</span>
|
|
</span><span id="Redshift-97"><a href="#Redshift-97"><span class="linenos"> 97</span></a> <span class="n">table</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span>
|
|
</span><span id="Redshift-98"><a href="#Redshift-98"><span class="linenos"> 98</span></a> <span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">,</span>
|
|
</span><span id="Redshift-99"><a href="#Redshift-99"><span class="linenos"> 99</span></a> <span class="n">joins</span><span class="o">=</span><span class="n">joins</span><span class="p">,</span>
|
|
</span><span id="Redshift-100"><a href="#Redshift-100"><span class="linenos">100</span></a> <span class="n">alias_tokens</span><span class="o">=</span><span class="n">alias_tokens</span><span class="p">,</span>
|
|
</span><span id="Redshift-101"><a href="#Redshift-101"><span class="linenos">101</span></a> <span class="n">parse_bracket</span><span class="o">=</span><span class="n">parse_bracket</span><span class="p">,</span>
|
|
</span><span id="Redshift-102"><a href="#Redshift-102"><span class="linenos">102</span></a> <span class="n">is_db_reference</span><span class="o">=</span><span class="n">is_db_reference</span><span class="p">,</span>
|
|
</span><span id="Redshift-103"><a href="#Redshift-103"><span class="linenos">103</span></a> <span class="p">)</span>
|
|
</span><span id="Redshift-104"><a href="#Redshift-104"><span class="linenos">104</span></a>
|
|
</span><span id="Redshift-105"><a href="#Redshift-105"><span class="linenos">105</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Pivot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">table</span><span class="p">,</span> <span class="n">unpivot</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">if</span> <span class="n">unpivot</span> <span class="k">else</span> <span class="n">table</span>
|
|
</span><span id="Redshift-106"><a href="#Redshift-106"><span class="linenos">106</span></a>
|
|
</span><span id="Redshift-107"><a href="#Redshift-107"><span class="linenos">107</span></a> <span class="k">def</span> <span class="nf">_parse_convert</span><span class="p">(</span>
|
|
</span><span id="Redshift-108"><a href="#Redshift-108"><span class="linenos">108</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">strict</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">safe</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><span id="Redshift-109"><a href="#Redshift-109"><span class="linenos">109</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]:</span>
|
|
</span><span id="Redshift-110"><a href="#Redshift-110"><span class="linenos">110</span></a> <span class="n">to</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">()</span>
|
|
</span><span id="Redshift-111"><a href="#Redshift-111"><span class="linenos">111</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">COMMA</span><span class="p">)</span>
|
|
</span><span id="Redshift-112"><a href="#Redshift-112"><span class="linenos">112</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">()</span>
|
|
</span><span id="Redshift-113"><a href="#Redshift-113"><span class="linenos">113</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TryCast</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">to</span><span class="o">=</span><span class="n">to</span><span class="p">,</span> <span class="n">safe</span><span class="o">=</span><span class="n">safe</span><span class="p">)</span>
|
|
</span><span id="Redshift-114"><a href="#Redshift-114"><span class="linenos">114</span></a>
|
|
</span><span id="Redshift-115"><a href="#Redshift-115"><span class="linenos">115</span></a> <span class="k">def</span> <span class="nf">_parse_approximate_count</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">]:</span>
|
|
</span><span id="Redshift-116"><a href="#Redshift-116"><span class="linenos">116</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">-</span> <span class="mi">1</span>
|
|
</span><span id="Redshift-117"><a href="#Redshift-117"><span class="linenos">117</span></a> <span class="n">func</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span>
|
|
</span><span id="Redshift-118"><a href="#Redshift-118"><span class="linenos">118</span></a>
|
|
</span><span id="Redshift-119"><a href="#Redshift-119"><span class="linenos">119</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Count</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">):</span>
|
|
</span><span id="Redshift-120"><a href="#Redshift-120"><span class="linenos">120</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
|
|
</span><span id="Redshift-121"><a href="#Redshift-121"><span class="linenos">121</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_retreat</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
|
|
</span><span id="Redshift-122"><a href="#Redshift-122"><span class="linenos">122</span></a> <span class="k">return</span> <span class="kc">None</span>
|
|
</span><span id="Redshift-123"><a href="#Redshift-123"><span class="linenos">123</span></a>
|
|
</span><span id="Redshift-124"><a href="#Redshift-124"><span class="linenos">124</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span>
|
|
</span><span id="Redshift-125"><a href="#Redshift-125"><span class="linenos">125</span></a> <span class="n">BIT_STRINGS</span> <span class="o">=</span> <span class="p">[]</span>
|
|
</span><span id="Redshift-126"><a href="#Redshift-126"><span class="linenos">126</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[]</span>
|
|
</span><span id="Redshift-127"><a href="#Redshift-127"><span class="linenos">127</span></a> <span class="n">STRING_ESCAPES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"</span><span class="se">\\</span><span class="s2">"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">]</span>
|
|
</span><span id="Redshift-128"><a href="#Redshift-128"><span class="linenos">128</span></a>
|
|
</span><span id="Redshift-129"><a href="#Redshift-129"><span class="linenos">129</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="Redshift-130"><a href="#Redshift-130"><span class="linenos">130</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="p">,</span>
|
|
</span><span id="Redshift-131"><a href="#Redshift-131"><span class="linenos">131</span></a> <span class="s2">"(+)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">JOIN_MARKER</span><span class="p">,</span>
|
|
</span><span id="Redshift-132"><a href="#Redshift-132"><span class="linenos">132</span></a> <span class="s2">"HLLSKETCH"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">HLLSKETCH</span><span class="p">,</span>
|
|
</span><span id="Redshift-133"><a href="#Redshift-133"><span class="linenos">133</span></a> <span class="s2">"MINUS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXCEPT</span><span class="p">,</span>
|
|
</span><span id="Redshift-134"><a href="#Redshift-134"><span class="linenos">134</span></a> <span class="s2">"SUPER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SUPER</span><span class="p">,</span>
|
|
</span><span id="Redshift-135"><a href="#Redshift-135"><span class="linenos">135</span></a> <span class="s2">"TOP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span>
|
|
</span><span id="Redshift-136"><a href="#Redshift-136"><span class="linenos">136</span></a> <span class="s2">"UNLOAD"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span>
|
|
</span><span id="Redshift-137"><a href="#Redshift-137"><span class="linenos">137</span></a> <span class="s2">"VARBYTE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARBINARY</span><span class="p">,</span>
|
|
</span><span id="Redshift-138"><a href="#Redshift-138"><span class="linenos">138</span></a> <span class="s2">"BINARY VARYING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARBINARY</span><span class="p">,</span>
|
|
</span><span id="Redshift-139"><a href="#Redshift-139"><span class="linenos">139</span></a> <span class="p">}</span>
|
|
</span><span id="Redshift-140"><a href="#Redshift-140"><span class="linenos">140</span></a> <span class="n">KEYWORDS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"VALUES"</span><span class="p">)</span>
|
|
</span><span id="Redshift-141"><a href="#Redshift-141"><span class="linenos">141</span></a>
|
|
</span><span id="Redshift-142"><a href="#Redshift-142"><span class="linenos">142</span></a> <span class="c1"># Redshift allows # to appear as a table identifier prefix</span>
|
|
</span><span id="Redshift-143"><a href="#Redshift-143"><span class="linenos">143</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="n">Postgres</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
|
|
</span><span id="Redshift-144"><a href="#Redshift-144"><span class="linenos">144</span></a> <span class="n">SINGLE_TOKENS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"#"</span><span class="p">)</span>
|
|
</span><span id="Redshift-145"><a href="#Redshift-145"><span class="linenos">145</span></a>
|
|
</span><span id="Redshift-146"><a href="#Redshift-146"><span class="linenos">146</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span>
|
|
</span><span id="Redshift-147"><a href="#Redshift-147"><span class="linenos">147</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift-148"><a href="#Redshift-148"><span class="linenos">148</span></a> <span class="n">QUERY_HINTS</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift-149"><a href="#Redshift-149"><span class="linenos">149</span></a> <span class="n">VALUES_AS_TABLE</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift-150"><a href="#Redshift-150"><span class="linenos">150</span></a> <span class="n">TZ_TO_WITH_TIME_ZONE</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift-151"><a href="#Redshift-151"><span class="linenos">151</span></a> <span class="n">NVL2_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift-152"><a href="#Redshift-152"><span class="linenos">152</span></a> <span class="n">LAST_DAY_SUPPORTS_DATE_PART</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift-153"><a href="#Redshift-153"><span class="linenos">153</span></a> <span class="n">CAN_IMPLEMENT_ARRAY_ANY</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift-154"><a href="#Redshift-154"><span class="linenos">154</span></a> <span class="n">MULTI_ARG_DISTINCT</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift-155"><a href="#Redshift-155"><span class="linenos">155</span></a> <span class="n">COPY_PARAMS_ARE_WRAPPED</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift-156"><a href="#Redshift-156"><span class="linenos">156</span></a> <span class="n">HEX_FUNC</span> <span class="o">=</span> <span class="s2">"TO_HEX"</span>
|
|
</span><span id="Redshift-157"><a href="#Redshift-157"><span class="linenos">157</span></a> <span class="n">PARSE_JSON_NAME</span> <span class="o">=</span> <span class="s2">"JSON_PARSE"</span>
|
|
</span><span id="Redshift-158"><a href="#Redshift-158"><span class="linenos">158</span></a> <span class="n">ARRAY_CONCAT_IS_VAR_LEN</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift-159"><a href="#Redshift-159"><span class="linenos">159</span></a> <span class="n">SUPPORTS_CONVERT_TIMEZONE</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift-160"><a href="#Redshift-160"><span class="linenos">160</span></a> <span class="n">EXCEPT_INTERSECT_SUPPORT_ALL_CLAUSE</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift-161"><a href="#Redshift-161"><span class="linenos">161</span></a> <span class="n">SUPPORTS_MEDIAN</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift-162"><a href="#Redshift-162"><span class="linenos">162</span></a>
|
|
</span><span id="Redshift-163"><a href="#Redshift-163"><span class="linenos">163</span></a> <span class="c1"># Redshift doesn't have `WITH` as part of their with_properties so we remove it</span>
|
|
</span><span id="Redshift-164"><a href="#Redshift-164"><span class="linenos">164</span></a> <span class="n">WITH_PROPERTIES_PREFIX</span> <span class="o">=</span> <span class="s2">" "</span>
|
|
</span><span id="Redshift-165"><a href="#Redshift-165"><span class="linenos">165</span></a>
|
|
</span><span id="Redshift-166"><a href="#Redshift-166"><span class="linenos">166</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="Redshift-167"><a href="#Redshift-167"><span class="linenos">167</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="p">,</span>
|
|
</span><span id="Redshift-168"><a href="#Redshift-168"><span class="linenos">168</span></a> <span class="n">exp</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="n">BINARY</span><span class="p">:</span> <span class="s2">"VARBYTE"</span><span class="p">,</span>
|
|
</span><span id="Redshift-169"><a href="#Redshift-169"><span class="linenos">169</span></a> <span class="n">exp</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="n">INT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span>
|
|
</span><span id="Redshift-170"><a href="#Redshift-170"><span class="linenos">170</span></a> <span class="n">exp</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="n">TIMETZ</span><span class="p">:</span> <span class="s2">"TIME"</span><span class="p">,</span>
|
|
</span><span id="Redshift-171"><a href="#Redshift-171"><span class="linenos">171</span></a> <span class="n">exp</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="n">TIMESTAMPTZ</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span>
|
|
</span><span id="Redshift-172"><a href="#Redshift-172"><span class="linenos">172</span></a> <span class="n">exp</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="n">VARBINARY</span><span class="p">:</span> <span class="s2">"VARBYTE"</span><span class="p">,</span>
|
|
</span><span id="Redshift-173"><a href="#Redshift-173"><span class="linenos">173</span></a> <span class="n">exp</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="n">ROWVERSION</span><span class="p">:</span> <span class="s2">"VARBYTE"</span><span class="p">,</span>
|
|
</span><span id="Redshift-174"><a href="#Redshift-174"><span class="linenos">174</span></a> <span class="p">}</span>
|
|
</span><span id="Redshift-175"><a href="#Redshift-175"><span class="linenos">175</span></a>
|
|
</span><span id="Redshift-176"><a href="#Redshift-176"><span class="linenos">176</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="Redshift-177"><a href="#Redshift-177"><span class="linenos">177</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span>
|
|
</span><span id="Redshift-178"><a href="#Redshift-178"><span class="linenos">178</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">arrayconcat_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"ARRAY_CONCAT"</span><span class="p">),</span>
|
|
</span><span id="Redshift-179"><a href="#Redshift-179"><span class="linenos">179</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Concat</span><span class="p">:</span> <span class="n">concat_to_dpipe_sql</span><span class="p">,</span>
|
|
</span><span id="Redshift-180"><a href="#Redshift-180"><span class="linenos">180</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ConcatWs</span><span class="p">:</span> <span class="n">concat_ws_to_dpipe_sql</span><span class="p">,</span>
|
|
</span><span id="Redshift-181"><a href="#Redshift-181"><span class="linenos">181</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="Redshift-182"><a href="#Redshift-182"><span class="linenos">182</span></a> <span class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"APPROXIMATE COUNT(DISTINCT </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span>
|
|
</span><span id="Redshift-183"><a href="#Redshift-183"><span class="linenos">183</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="p">(</span>
|
|
</span><span id="Redshift-184"><a href="#Redshift-184"><span class="linenos">184</span></a> <span class="s2">"SYSDATE"</span> <span class="k">if</span> <span class="n">e</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">"sysdate"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"GETDATE()"</span>
|
|
</span><span id="Redshift-185"><a href="#Redshift-185"><span class="linenos">185</span></a> <span class="p">),</span>
|
|
</span><span id="Redshift-186"><a href="#Redshift-186"><span class="linenos">186</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">date_delta_sql</span><span class="p">(</span><span class="s2">"DATEADD"</span><span class="p">),</span>
|
|
</span><span id="Redshift-187"><a href="#Redshift-187"><span class="linenos">187</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">date_delta_sql</span><span class="p">(</span><span class="s2">"DATEDIFF"</span><span class="p">),</span>
|
|
</span><span id="Redshift-188"><a href="#Redshift-188"><span class="linenos">188</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistKeyProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"DISTKEY"</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
|
|
</span><span id="Redshift-189"><a href="#Redshift-189"><span class="linenos">189</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistStyleProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">naked_property</span><span class="p">(</span><span class="n">e</span><span class="p">),</span>
|
|
</span><span id="Redshift-190"><a href="#Redshift-190"><span class="linenos">190</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">explode_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span>
|
|
</span><span id="Redshift-191"><a href="#Redshift-191"><span class="linenos">191</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FromBase</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STRTOL"</span><span class="p">),</span>
|
|
</span><span id="Redshift-192"><a href="#Redshift-192"><span class="linenos">192</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span><span class="p">:</span> <span class="n">generatedasidentitycolumnconstraint_sql</span><span class="p">,</span>
|
|
</span><span id="Redshift-193"><a href="#Redshift-193"><span class="linenos">193</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">json_extract_segments</span><span class="p">(</span><span class="s2">"JSON_EXTRACT_PATH_TEXT"</span><span class="p">),</span>
|
|
</span><span id="Redshift-194"><a href="#Redshift-194"><span class="linenos">194</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">json_extract_segments</span><span class="p">(</span><span class="s2">"JSON_EXTRACT_PATH_TEXT"</span><span class="p">),</span>
|
|
</span><span id="Redshift-195"><a href="#Redshift-195"><span class="linenos">195</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LISTAGG"</span><span class="p">),</span>
|
|
</span><span id="Redshift-196"><a href="#Redshift-196"><span class="linenos">196</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"UPPER"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TO_HEX"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))),</span>
|
|
</span><span id="Redshift-197"><a href="#Redshift-197"><span class="linenos">197</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">preprocess</span><span class="p">(</span>
|
|
</span><span id="Redshift-198"><a href="#Redshift-198"><span class="linenos">198</span></a> <span class="p">[</span>
|
|
</span><span id="Redshift-199"><a href="#Redshift-199"><span class="linenos">199</span></a> <span class="n">transforms</span><span class="o">.</span><span class="n">eliminate_distinct_on</span><span class="p">,</span>
|
|
</span><span id="Redshift-200"><a href="#Redshift-200"><span class="linenos">200</span></a> <span class="n">transforms</span><span class="o">.</span><span class="n">eliminate_semi_and_anti_joins</span><span class="p">,</span>
|
|
</span><span id="Redshift-201"><a href="#Redshift-201"><span class="linenos">201</span></a> <span class="n">transforms</span><span class="o">.</span><span class="n">unqualify_unnest</span><span class="p">,</span>
|
|
</span><span id="Redshift-202"><a href="#Redshift-202"><span class="linenos">202</span></a> <span class="n">transforms</span><span class="o">.</span><span class="n">unnest_generate_date_array_using_recursive_cte</span><span class="p">,</span>
|
|
</span><span id="Redshift-203"><a href="#Redshift-203"><span class="linenos">203</span></a> <span class="p">]</span>
|
|
</span><span id="Redshift-204"><a href="#Redshift-204"><span class="linenos">204</span></a> <span class="p">),</span>
|
|
</span><span id="Redshift-205"><a href="#Redshift-205"><span class="linenos">205</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortKeyProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="Redshift-206"><a href="#Redshift-206"><span class="linenos">206</span></a> <span class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'COMPOUND '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s1">'compound'</span><span class="p">]</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}</span><span class="s2">SORTKEY(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</span><span class="o">*</span><span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span>
|
|
</span><span id="Redshift-207"><a href="#Redshift-207"><span class="linenos">207</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StartsWith</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="Redshift-208"><a href="#Redshift-208"><span class="linenos">208</span></a> <span class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2"> LIKE </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> || '%'"</span><span class="p">,</span>
|
|
</span><span id="Redshift-209"><a href="#Redshift-209"><span class="linenos">209</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StringToArray</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SPLIT_TO_ARRAY"</span><span class="p">),</span>
|
|
</span><span id="Redshift-210"><a href="#Redshift-210"><span class="linenos">210</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableSample</span><span class="p">:</span> <span class="n">no_tablesample_sql</span><span class="p">,</span>
|
|
</span><span id="Redshift-211"><a href="#Redshift-211"><span class="linenos">211</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">date_delta_sql</span><span class="p">(</span><span class="s2">"DATEADD"</span><span class="p">),</span>
|
|
</span><span id="Redshift-212"><a href="#Redshift-212"><span class="linenos">212</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsDiff</span><span class="p">:</span> <span class="n">date_delta_sql</span><span class="p">(</span><span class="s2">"DATEDIFF"</span><span class="p">),</span>
|
|
</span><span id="Redshift-213"><a href="#Redshift-213"><span class="linenos">213</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="Redshift-214"><a href="#Redshift-214"><span class="linenos">214</span></a> <span class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"(TIMESTAMP 'epoch' + </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2"> * INTERVAL '1 SECOND')"</span><span class="p">,</span>
|
|
</span><span id="Redshift-215"><a href="#Redshift-215"><span class="linenos">215</span></a> <span class="p">}</span>
|
|
</span><span id="Redshift-216"><a href="#Redshift-216"><span class="linenos">216</span></a>
|
|
</span><span id="Redshift-217"><a href="#Redshift-217"><span class="linenos">217</span></a> <span class="c1"># Postgres maps exp.Pivot to no_pivot_sql, but Redshift support pivots</span>
|
|
</span><span id="Redshift-218"><a href="#Redshift-218"><span class="linenos">218</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Pivot</span><span class="p">)</span>
|
|
</span><span id="Redshift-219"><a href="#Redshift-219"><span class="linenos">219</span></a>
|
|
</span><span id="Redshift-220"><a href="#Redshift-220"><span class="linenos">220</span></a> <span class="c1"># Postgres doesn't support JSON_PARSE, but Redshift does</span>
|
|
</span><span id="Redshift-221"><a href="#Redshift-221"><span class="linenos">221</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ParseJSON</span><span class="p">)</span>
|
|
</span><span id="Redshift-222"><a href="#Redshift-222"><span class="linenos">222</span></a>
|
|
</span><span id="Redshift-223"><a href="#Redshift-223"><span class="linenos">223</span></a> <span class="c1"># Redshift uses the POW | POWER (expr1, expr2) syntax instead of expr1 ^ expr2 (postgres)</span>
|
|
</span><span id="Redshift-224"><a href="#Redshift-224"><span class="linenos">224</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Pow</span><span class="p">)</span>
|
|
</span><span id="Redshift-225"><a href="#Redshift-225"><span class="linenos">225</span></a>
|
|
</span><span id="Redshift-226"><a href="#Redshift-226"><span class="linenos">226</span></a> <span class="c1"># Redshift supports these functions</span>
|
|
</span><span id="Redshift-227"><a href="#Redshift-227"><span class="linenos">227</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">AnyValue</span><span class="p">)</span>
|
|
</span><span id="Redshift-228"><a href="#Redshift-228"><span class="linenos">228</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LastDay</span><span class="p">)</span>
|
|
</span><span id="Redshift-229"><a href="#Redshift-229"><span class="linenos">229</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SHA2</span><span class="p">)</span>
|
|
</span><span id="Redshift-230"><a href="#Redshift-230"><span class="linenos">230</span></a>
|
|
</span><span id="Redshift-231"><a href="#Redshift-231"><span class="linenos">231</span></a> <span class="n">RESERVED_KEYWORDS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="Redshift-232"><a href="#Redshift-232"><span class="linenos">232</span></a> <span class="s2">"aes128"</span><span class="p">,</span>
|
|
</span><span id="Redshift-233"><a href="#Redshift-233"><span class="linenos">233</span></a> <span class="s2">"aes256"</span><span class="p">,</span>
|
|
</span><span id="Redshift-234"><a href="#Redshift-234"><span class="linenos">234</span></a> <span class="s2">"all"</span><span class="p">,</span>
|
|
</span><span id="Redshift-235"><a href="#Redshift-235"><span class="linenos">235</span></a> <span class="s2">"allowoverwrite"</span><span class="p">,</span>
|
|
</span><span id="Redshift-236"><a href="#Redshift-236"><span class="linenos">236</span></a> <span class="s2">"analyse"</span><span class="p">,</span>
|
|
</span><span id="Redshift-237"><a href="#Redshift-237"><span class="linenos">237</span></a> <span class="s2">"analyze"</span><span class="p">,</span>
|
|
</span><span id="Redshift-238"><a href="#Redshift-238"><span class="linenos">238</span></a> <span class="s2">"and"</span><span class="p">,</span>
|
|
</span><span id="Redshift-239"><a href="#Redshift-239"><span class="linenos">239</span></a> <span class="s2">"any"</span><span class="p">,</span>
|
|
</span><span id="Redshift-240"><a href="#Redshift-240"><span class="linenos">240</span></a> <span class="s2">"array"</span><span class="p">,</span>
|
|
</span><span id="Redshift-241"><a href="#Redshift-241"><span class="linenos">241</span></a> <span class="s2">"as"</span><span class="p">,</span>
|
|
</span><span id="Redshift-242"><a href="#Redshift-242"><span class="linenos">242</span></a> <span class="s2">"asc"</span><span class="p">,</span>
|
|
</span><span id="Redshift-243"><a href="#Redshift-243"><span class="linenos">243</span></a> <span class="s2">"authorization"</span><span class="p">,</span>
|
|
</span><span id="Redshift-244"><a href="#Redshift-244"><span class="linenos">244</span></a> <span class="s2">"az64"</span><span class="p">,</span>
|
|
</span><span id="Redshift-245"><a href="#Redshift-245"><span class="linenos">245</span></a> <span class="s2">"backup"</span><span class="p">,</span>
|
|
</span><span id="Redshift-246"><a href="#Redshift-246"><span class="linenos">246</span></a> <span class="s2">"between"</span><span class="p">,</span>
|
|
</span><span id="Redshift-247"><a href="#Redshift-247"><span class="linenos">247</span></a> <span class="s2">"binary"</span><span class="p">,</span>
|
|
</span><span id="Redshift-248"><a href="#Redshift-248"><span class="linenos">248</span></a> <span class="s2">"blanksasnull"</span><span class="p">,</span>
|
|
</span><span id="Redshift-249"><a href="#Redshift-249"><span class="linenos">249</span></a> <span class="s2">"both"</span><span class="p">,</span>
|
|
</span><span id="Redshift-250"><a href="#Redshift-250"><span class="linenos">250</span></a> <span class="s2">"bytedict"</span><span class="p">,</span>
|
|
</span><span id="Redshift-251"><a href="#Redshift-251"><span class="linenos">251</span></a> <span class="s2">"bzip2"</span><span class="p">,</span>
|
|
</span><span id="Redshift-252"><a href="#Redshift-252"><span class="linenos">252</span></a> <span class="s2">"case"</span><span class="p">,</span>
|
|
</span><span id="Redshift-253"><a href="#Redshift-253"><span class="linenos">253</span></a> <span class="s2">"cast"</span><span class="p">,</span>
|
|
</span><span id="Redshift-254"><a href="#Redshift-254"><span class="linenos">254</span></a> <span class="s2">"check"</span><span class="p">,</span>
|
|
</span><span id="Redshift-255"><a href="#Redshift-255"><span class="linenos">255</span></a> <span class="s2">"collate"</span><span class="p">,</span>
|
|
</span><span id="Redshift-256"><a href="#Redshift-256"><span class="linenos">256</span></a> <span class="s2">"column"</span><span class="p">,</span>
|
|
</span><span id="Redshift-257"><a href="#Redshift-257"><span class="linenos">257</span></a> <span class="s2">"constraint"</span><span class="p">,</span>
|
|
</span><span id="Redshift-258"><a href="#Redshift-258"><span class="linenos">258</span></a> <span class="s2">"create"</span><span class="p">,</span>
|
|
</span><span id="Redshift-259"><a href="#Redshift-259"><span class="linenos">259</span></a> <span class="s2">"credentials"</span><span class="p">,</span>
|
|
</span><span id="Redshift-260"><a href="#Redshift-260"><span class="linenos">260</span></a> <span class="s2">"cross"</span><span class="p">,</span>
|
|
</span><span id="Redshift-261"><a href="#Redshift-261"><span class="linenos">261</span></a> <span class="s2">"current_date"</span><span class="p">,</span>
|
|
</span><span id="Redshift-262"><a href="#Redshift-262"><span class="linenos">262</span></a> <span class="s2">"current_time"</span><span class="p">,</span>
|
|
</span><span id="Redshift-263"><a href="#Redshift-263"><span class="linenos">263</span></a> <span class="s2">"current_timestamp"</span><span class="p">,</span>
|
|
</span><span id="Redshift-264"><a href="#Redshift-264"><span class="linenos">264</span></a> <span class="s2">"current_user"</span><span class="p">,</span>
|
|
</span><span id="Redshift-265"><a href="#Redshift-265"><span class="linenos">265</span></a> <span class="s2">"current_user_id"</span><span class="p">,</span>
|
|
</span><span id="Redshift-266"><a href="#Redshift-266"><span class="linenos">266</span></a> <span class="s2">"default"</span><span class="p">,</span>
|
|
</span><span id="Redshift-267"><a href="#Redshift-267"><span class="linenos">267</span></a> <span class="s2">"deferrable"</span><span class="p">,</span>
|
|
</span><span id="Redshift-268"><a href="#Redshift-268"><span class="linenos">268</span></a> <span class="s2">"deflate"</span><span class="p">,</span>
|
|
</span><span id="Redshift-269"><a href="#Redshift-269"><span class="linenos">269</span></a> <span class="s2">"defrag"</span><span class="p">,</span>
|
|
</span><span id="Redshift-270"><a href="#Redshift-270"><span class="linenos">270</span></a> <span class="s2">"delta"</span><span class="p">,</span>
|
|
</span><span id="Redshift-271"><a href="#Redshift-271"><span class="linenos">271</span></a> <span class="s2">"delta32k"</span><span class="p">,</span>
|
|
</span><span id="Redshift-272"><a href="#Redshift-272"><span class="linenos">272</span></a> <span class="s2">"desc"</span><span class="p">,</span>
|
|
</span><span id="Redshift-273"><a href="#Redshift-273"><span class="linenos">273</span></a> <span class="s2">"disable"</span><span class="p">,</span>
|
|
</span><span id="Redshift-274"><a href="#Redshift-274"><span class="linenos">274</span></a> <span class="s2">"distinct"</span><span class="p">,</span>
|
|
</span><span id="Redshift-275"><a href="#Redshift-275"><span class="linenos">275</span></a> <span class="s2">"do"</span><span class="p">,</span>
|
|
</span><span id="Redshift-276"><a href="#Redshift-276"><span class="linenos">276</span></a> <span class="s2">"else"</span><span class="p">,</span>
|
|
</span><span id="Redshift-277"><a href="#Redshift-277"><span class="linenos">277</span></a> <span class="s2">"emptyasnull"</span><span class="p">,</span>
|
|
</span><span id="Redshift-278"><a href="#Redshift-278"><span class="linenos">278</span></a> <span class="s2">"enable"</span><span class="p">,</span>
|
|
</span><span id="Redshift-279"><a href="#Redshift-279"><span class="linenos">279</span></a> <span class="s2">"encode"</span><span class="p">,</span>
|
|
</span><span id="Redshift-280"><a href="#Redshift-280"><span class="linenos">280</span></a> <span class="s2">"encrypt "</span><span class="p">,</span>
|
|
</span><span id="Redshift-281"><a href="#Redshift-281"><span class="linenos">281</span></a> <span class="s2">"encryption"</span><span class="p">,</span>
|
|
</span><span id="Redshift-282"><a href="#Redshift-282"><span class="linenos">282</span></a> <span class="s2">"end"</span><span class="p">,</span>
|
|
</span><span id="Redshift-283"><a href="#Redshift-283"><span class="linenos">283</span></a> <span class="s2">"except"</span><span class="p">,</span>
|
|
</span><span id="Redshift-284"><a href="#Redshift-284"><span class="linenos">284</span></a> <span class="s2">"explicit"</span><span class="p">,</span>
|
|
</span><span id="Redshift-285"><a href="#Redshift-285"><span class="linenos">285</span></a> <span class="s2">"false"</span><span class="p">,</span>
|
|
</span><span id="Redshift-286"><a href="#Redshift-286"><span class="linenos">286</span></a> <span class="s2">"for"</span><span class="p">,</span>
|
|
</span><span id="Redshift-287"><a href="#Redshift-287"><span class="linenos">287</span></a> <span class="s2">"foreign"</span><span class="p">,</span>
|
|
</span><span id="Redshift-288"><a href="#Redshift-288"><span class="linenos">288</span></a> <span class="s2">"freeze"</span><span class="p">,</span>
|
|
</span><span id="Redshift-289"><a href="#Redshift-289"><span class="linenos">289</span></a> <span class="s2">"from"</span><span class="p">,</span>
|
|
</span><span id="Redshift-290"><a href="#Redshift-290"><span class="linenos">290</span></a> <span class="s2">"full"</span><span class="p">,</span>
|
|
</span><span id="Redshift-291"><a href="#Redshift-291"><span class="linenos">291</span></a> <span class="s2">"globaldict256"</span><span class="p">,</span>
|
|
</span><span id="Redshift-292"><a href="#Redshift-292"><span class="linenos">292</span></a> <span class="s2">"globaldict64k"</span><span class="p">,</span>
|
|
</span><span id="Redshift-293"><a href="#Redshift-293"><span class="linenos">293</span></a> <span class="s2">"grant"</span><span class="p">,</span>
|
|
</span><span id="Redshift-294"><a href="#Redshift-294"><span class="linenos">294</span></a> <span class="s2">"group"</span><span class="p">,</span>
|
|
</span><span id="Redshift-295"><a href="#Redshift-295"><span class="linenos">295</span></a> <span class="s2">"gzip"</span><span class="p">,</span>
|
|
</span><span id="Redshift-296"><a href="#Redshift-296"><span class="linenos">296</span></a> <span class="s2">"having"</span><span class="p">,</span>
|
|
</span><span id="Redshift-297"><a href="#Redshift-297"><span class="linenos">297</span></a> <span class="s2">"identity"</span><span class="p">,</span>
|
|
</span><span id="Redshift-298"><a href="#Redshift-298"><span class="linenos">298</span></a> <span class="s2">"ignore"</span><span class="p">,</span>
|
|
</span><span id="Redshift-299"><a href="#Redshift-299"><span class="linenos">299</span></a> <span class="s2">"ilike"</span><span class="p">,</span>
|
|
</span><span id="Redshift-300"><a href="#Redshift-300"><span class="linenos">300</span></a> <span class="s2">"in"</span><span class="p">,</span>
|
|
</span><span id="Redshift-301"><a href="#Redshift-301"><span class="linenos">301</span></a> <span class="s2">"initially"</span><span class="p">,</span>
|
|
</span><span id="Redshift-302"><a href="#Redshift-302"><span class="linenos">302</span></a> <span class="s2">"inner"</span><span class="p">,</span>
|
|
</span><span id="Redshift-303"><a href="#Redshift-303"><span class="linenos">303</span></a> <span class="s2">"intersect"</span><span class="p">,</span>
|
|
</span><span id="Redshift-304"><a href="#Redshift-304"><span class="linenos">304</span></a> <span class="s2">"interval"</span><span class="p">,</span>
|
|
</span><span id="Redshift-305"><a href="#Redshift-305"><span class="linenos">305</span></a> <span class="s2">"into"</span><span class="p">,</span>
|
|
</span><span id="Redshift-306"><a href="#Redshift-306"><span class="linenos">306</span></a> <span class="s2">"is"</span><span class="p">,</span>
|
|
</span><span id="Redshift-307"><a href="#Redshift-307"><span class="linenos">307</span></a> <span class="s2">"isnull"</span><span class="p">,</span>
|
|
</span><span id="Redshift-308"><a href="#Redshift-308"><span class="linenos">308</span></a> <span class="s2">"join"</span><span class="p">,</span>
|
|
</span><span id="Redshift-309"><a href="#Redshift-309"><span class="linenos">309</span></a> <span class="s2">"leading"</span><span class="p">,</span>
|
|
</span><span id="Redshift-310"><a href="#Redshift-310"><span class="linenos">310</span></a> <span class="s2">"left"</span><span class="p">,</span>
|
|
</span><span id="Redshift-311"><a href="#Redshift-311"><span class="linenos">311</span></a> <span class="s2">"like"</span><span class="p">,</span>
|
|
</span><span id="Redshift-312"><a href="#Redshift-312"><span class="linenos">312</span></a> <span class="s2">"limit"</span><span class="p">,</span>
|
|
</span><span id="Redshift-313"><a href="#Redshift-313"><span class="linenos">313</span></a> <span class="s2">"localtime"</span><span class="p">,</span>
|
|
</span><span id="Redshift-314"><a href="#Redshift-314"><span class="linenos">314</span></a> <span class="s2">"localtimestamp"</span><span class="p">,</span>
|
|
</span><span id="Redshift-315"><a href="#Redshift-315"><span class="linenos">315</span></a> <span class="s2">"lun"</span><span class="p">,</span>
|
|
</span><span id="Redshift-316"><a href="#Redshift-316"><span class="linenos">316</span></a> <span class="s2">"luns"</span><span class="p">,</span>
|
|
</span><span id="Redshift-317"><a href="#Redshift-317"><span class="linenos">317</span></a> <span class="s2">"lzo"</span><span class="p">,</span>
|
|
</span><span id="Redshift-318"><a href="#Redshift-318"><span class="linenos">318</span></a> <span class="s2">"lzop"</span><span class="p">,</span>
|
|
</span><span id="Redshift-319"><a href="#Redshift-319"><span class="linenos">319</span></a> <span class="s2">"minus"</span><span class="p">,</span>
|
|
</span><span id="Redshift-320"><a href="#Redshift-320"><span class="linenos">320</span></a> <span class="s2">"mostly16"</span><span class="p">,</span>
|
|
</span><span id="Redshift-321"><a href="#Redshift-321"><span class="linenos">321</span></a> <span class="s2">"mostly32"</span><span class="p">,</span>
|
|
</span><span id="Redshift-322"><a href="#Redshift-322"><span class="linenos">322</span></a> <span class="s2">"mostly8"</span><span class="p">,</span>
|
|
</span><span id="Redshift-323"><a href="#Redshift-323"><span class="linenos">323</span></a> <span class="s2">"natural"</span><span class="p">,</span>
|
|
</span><span id="Redshift-324"><a href="#Redshift-324"><span class="linenos">324</span></a> <span class="s2">"new"</span><span class="p">,</span>
|
|
</span><span id="Redshift-325"><a href="#Redshift-325"><span class="linenos">325</span></a> <span class="s2">"not"</span><span class="p">,</span>
|
|
</span><span id="Redshift-326"><a href="#Redshift-326"><span class="linenos">326</span></a> <span class="s2">"notnull"</span><span class="p">,</span>
|
|
</span><span id="Redshift-327"><a href="#Redshift-327"><span class="linenos">327</span></a> <span class="s2">"null"</span><span class="p">,</span>
|
|
</span><span id="Redshift-328"><a href="#Redshift-328"><span class="linenos">328</span></a> <span class="s2">"nulls"</span><span class="p">,</span>
|
|
</span><span id="Redshift-329"><a href="#Redshift-329"><span class="linenos">329</span></a> <span class="s2">"off"</span><span class="p">,</span>
|
|
</span><span id="Redshift-330"><a href="#Redshift-330"><span class="linenos">330</span></a> <span class="s2">"offline"</span><span class="p">,</span>
|
|
</span><span id="Redshift-331"><a href="#Redshift-331"><span class="linenos">331</span></a> <span class="s2">"offset"</span><span class="p">,</span>
|
|
</span><span id="Redshift-332"><a href="#Redshift-332"><span class="linenos">332</span></a> <span class="s2">"oid"</span><span class="p">,</span>
|
|
</span><span id="Redshift-333"><a href="#Redshift-333"><span class="linenos">333</span></a> <span class="s2">"old"</span><span class="p">,</span>
|
|
</span><span id="Redshift-334"><a href="#Redshift-334"><span class="linenos">334</span></a> <span class="s2">"on"</span><span class="p">,</span>
|
|
</span><span id="Redshift-335"><a href="#Redshift-335"><span class="linenos">335</span></a> <span class="s2">"only"</span><span class="p">,</span>
|
|
</span><span id="Redshift-336"><a href="#Redshift-336"><span class="linenos">336</span></a> <span class="s2">"open"</span><span class="p">,</span>
|
|
</span><span id="Redshift-337"><a href="#Redshift-337"><span class="linenos">337</span></a> <span class="s2">"or"</span><span class="p">,</span>
|
|
</span><span id="Redshift-338"><a href="#Redshift-338"><span class="linenos">338</span></a> <span class="s2">"order"</span><span class="p">,</span>
|
|
</span><span id="Redshift-339"><a href="#Redshift-339"><span class="linenos">339</span></a> <span class="s2">"outer"</span><span class="p">,</span>
|
|
</span><span id="Redshift-340"><a href="#Redshift-340"><span class="linenos">340</span></a> <span class="s2">"overlaps"</span><span class="p">,</span>
|
|
</span><span id="Redshift-341"><a href="#Redshift-341"><span class="linenos">341</span></a> <span class="s2">"parallel"</span><span class="p">,</span>
|
|
</span><span id="Redshift-342"><a href="#Redshift-342"><span class="linenos">342</span></a> <span class="s2">"partition"</span><span class="p">,</span>
|
|
</span><span id="Redshift-343"><a href="#Redshift-343"><span class="linenos">343</span></a> <span class="s2">"percent"</span><span class="p">,</span>
|
|
</span><span id="Redshift-344"><a href="#Redshift-344"><span class="linenos">344</span></a> <span class="s2">"permissions"</span><span class="p">,</span>
|
|
</span><span id="Redshift-345"><a href="#Redshift-345"><span class="linenos">345</span></a> <span class="s2">"pivot"</span><span class="p">,</span>
|
|
</span><span id="Redshift-346"><a href="#Redshift-346"><span class="linenos">346</span></a> <span class="s2">"placing"</span><span class="p">,</span>
|
|
</span><span id="Redshift-347"><a href="#Redshift-347"><span class="linenos">347</span></a> <span class="s2">"primary"</span><span class="p">,</span>
|
|
</span><span id="Redshift-348"><a href="#Redshift-348"><span class="linenos">348</span></a> <span class="s2">"raw"</span><span class="p">,</span>
|
|
</span><span id="Redshift-349"><a href="#Redshift-349"><span class="linenos">349</span></a> <span class="s2">"readratio"</span><span class="p">,</span>
|
|
</span><span id="Redshift-350"><a href="#Redshift-350"><span class="linenos">350</span></a> <span class="s2">"recover"</span><span class="p">,</span>
|
|
</span><span id="Redshift-351"><a href="#Redshift-351"><span class="linenos">351</span></a> <span class="s2">"references"</span><span class="p">,</span>
|
|
</span><span id="Redshift-352"><a href="#Redshift-352"><span class="linenos">352</span></a> <span class="s2">"rejectlog"</span><span class="p">,</span>
|
|
</span><span id="Redshift-353"><a href="#Redshift-353"><span class="linenos">353</span></a> <span class="s2">"resort"</span><span class="p">,</span>
|
|
</span><span id="Redshift-354"><a href="#Redshift-354"><span class="linenos">354</span></a> <span class="s2">"respect"</span><span class="p">,</span>
|
|
</span><span id="Redshift-355"><a href="#Redshift-355"><span class="linenos">355</span></a> <span class="s2">"restore"</span><span class="p">,</span>
|
|
</span><span id="Redshift-356"><a href="#Redshift-356"><span class="linenos">356</span></a> <span class="s2">"right"</span><span class="p">,</span>
|
|
</span><span id="Redshift-357"><a href="#Redshift-357"><span class="linenos">357</span></a> <span class="s2">"select"</span><span class="p">,</span>
|
|
</span><span id="Redshift-358"><a href="#Redshift-358"><span class="linenos">358</span></a> <span class="s2">"session_user"</span><span class="p">,</span>
|
|
</span><span id="Redshift-359"><a href="#Redshift-359"><span class="linenos">359</span></a> <span class="s2">"similar"</span><span class="p">,</span>
|
|
</span><span id="Redshift-360"><a href="#Redshift-360"><span class="linenos">360</span></a> <span class="s2">"snapshot"</span><span class="p">,</span>
|
|
</span><span id="Redshift-361"><a href="#Redshift-361"><span class="linenos">361</span></a> <span class="s2">"some"</span><span class="p">,</span>
|
|
</span><span id="Redshift-362"><a href="#Redshift-362"><span class="linenos">362</span></a> <span class="s2">"sysdate"</span><span class="p">,</span>
|
|
</span><span id="Redshift-363"><a href="#Redshift-363"><span class="linenos">363</span></a> <span class="s2">"system"</span><span class="p">,</span>
|
|
</span><span id="Redshift-364"><a href="#Redshift-364"><span class="linenos">364</span></a> <span class="s2">"table"</span><span class="p">,</span>
|
|
</span><span id="Redshift-365"><a href="#Redshift-365"><span class="linenos">365</span></a> <span class="s2">"tag"</span><span class="p">,</span>
|
|
</span><span id="Redshift-366"><a href="#Redshift-366"><span class="linenos">366</span></a> <span class="s2">"tdes"</span><span class="p">,</span>
|
|
</span><span id="Redshift-367"><a href="#Redshift-367"><span class="linenos">367</span></a> <span class="s2">"text255"</span><span class="p">,</span>
|
|
</span><span id="Redshift-368"><a href="#Redshift-368"><span class="linenos">368</span></a> <span class="s2">"text32k"</span><span class="p">,</span>
|
|
</span><span id="Redshift-369"><a href="#Redshift-369"><span class="linenos">369</span></a> <span class="s2">"then"</span><span class="p">,</span>
|
|
</span><span id="Redshift-370"><a href="#Redshift-370"><span class="linenos">370</span></a> <span class="s2">"timestamp"</span><span class="p">,</span>
|
|
</span><span id="Redshift-371"><a href="#Redshift-371"><span class="linenos">371</span></a> <span class="s2">"to"</span><span class="p">,</span>
|
|
</span><span id="Redshift-372"><a href="#Redshift-372"><span class="linenos">372</span></a> <span class="s2">"top"</span><span class="p">,</span>
|
|
</span><span id="Redshift-373"><a href="#Redshift-373"><span class="linenos">373</span></a> <span class="s2">"trailing"</span><span class="p">,</span>
|
|
</span><span id="Redshift-374"><a href="#Redshift-374"><span class="linenos">374</span></a> <span class="s2">"true"</span><span class="p">,</span>
|
|
</span><span id="Redshift-375"><a href="#Redshift-375"><span class="linenos">375</span></a> <span class="s2">"truncatecolumns"</span><span class="p">,</span>
|
|
</span><span id="Redshift-376"><a href="#Redshift-376"><span class="linenos">376</span></a> <span class="s2">"type"</span><span class="p">,</span>
|
|
</span><span id="Redshift-377"><a href="#Redshift-377"><span class="linenos">377</span></a> <span class="s2">"union"</span><span class="p">,</span>
|
|
</span><span id="Redshift-378"><a href="#Redshift-378"><span class="linenos">378</span></a> <span class="s2">"unique"</span><span class="p">,</span>
|
|
</span><span id="Redshift-379"><a href="#Redshift-379"><span class="linenos">379</span></a> <span class="s2">"unnest"</span><span class="p">,</span>
|
|
</span><span id="Redshift-380"><a href="#Redshift-380"><span class="linenos">380</span></a> <span class="s2">"unpivot"</span><span class="p">,</span>
|
|
</span><span id="Redshift-381"><a href="#Redshift-381"><span class="linenos">381</span></a> <span class="s2">"user"</span><span class="p">,</span>
|
|
</span><span id="Redshift-382"><a href="#Redshift-382"><span class="linenos">382</span></a> <span class="s2">"using"</span><span class="p">,</span>
|
|
</span><span id="Redshift-383"><a href="#Redshift-383"><span class="linenos">383</span></a> <span class="s2">"verbose"</span><span class="p">,</span>
|
|
</span><span id="Redshift-384"><a href="#Redshift-384"><span class="linenos">384</span></a> <span class="s2">"wallet"</span><span class="p">,</span>
|
|
</span><span id="Redshift-385"><a href="#Redshift-385"><span class="linenos">385</span></a> <span class="s2">"when"</span><span class="p">,</span>
|
|
</span><span id="Redshift-386"><a href="#Redshift-386"><span class="linenos">386</span></a> <span class="s2">"where"</span><span class="p">,</span>
|
|
</span><span id="Redshift-387"><a href="#Redshift-387"><span class="linenos">387</span></a> <span class="s2">"with"</span><span class="p">,</span>
|
|
</span><span id="Redshift-388"><a href="#Redshift-388"><span class="linenos">388</span></a> <span class="s2">"without"</span><span class="p">,</span>
|
|
</span><span id="Redshift-389"><a href="#Redshift-389"><span class="linenos">389</span></a> <span class="p">}</span>
|
|
</span><span id="Redshift-390"><a href="#Redshift-390"><span class="linenos">390</span></a>
|
|
</span><span id="Redshift-391"><a href="#Redshift-391"><span class="linenos">391</span></a> <span class="k">def</span> <span class="nf">unnest_sql</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">exp</span><span class="o">.</span><span class="n">Unnest</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift-392"><a href="#Redshift-392"><span class="linenos">392</span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span>
|
|
</span><span id="Redshift-393"><a href="#Redshift-393"><span class="linenos">393</span></a> <span class="n">num_args</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
|
|
</span><span id="Redshift-394"><a href="#Redshift-394"><span class="linenos">394</span></a>
|
|
</span><span id="Redshift-395"><a href="#Redshift-395"><span class="linenos">395</span></a> <span class="k">if</span> <span class="n">num_args</span> <span class="o">!=</span> <span class="mi">1</span><span class="p">:</span>
|
|
</span><span id="Redshift-396"><a href="#Redshift-396"><span class="linenos">396</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported number of arguments in UNNEST: </span><span class="si">{</span><span class="n">num_args</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
</span><span id="Redshift-397"><a href="#Redshift-397"><span class="linenos">397</span></a> <span class="k">return</span> <span class="s2">""</span>
|
|
</span><span id="Redshift-398"><a href="#Redshift-398"><span class="linenos">398</span></a>
|
|
</span><span id="Redshift-399"><a href="#Redshift-399"><span class="linenos">399</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">):</span>
|
|
</span><span id="Redshift-400"><a href="#Redshift-400"><span class="linenos">400</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported UNNEST when not used in FROM/JOIN clauses"</span><span class="p">)</span>
|
|
</span><span id="Redshift-401"><a href="#Redshift-401"><span class="linenos">401</span></a> <span class="k">return</span> <span class="s2">""</span>
|
|
</span><span id="Redshift-402"><a href="#Redshift-402"><span class="linenos">402</span></a>
|
|
</span><span id="Redshift-403"><a href="#Redshift-403"><span class="linenos">403</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
|
|
</span><span id="Redshift-404"><a href="#Redshift-404"><span class="linenos">404</span></a>
|
|
</span><span id="Redshift-405"><a href="#Redshift-405"><span class="linenos">405</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">),</span> <span class="n">key</span><span class="o">=</span><span class="s2">"columns"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
</span><span id="Redshift-406"><a href="#Redshift-406"><span class="linenos">406</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">arg</span><span class="si">}</span><span class="s2"> AS </span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="n">arg</span>
|
|
</span><span id="Redshift-407"><a href="#Redshift-407"><span class="linenos">407</span></a>
|
|
</span><span id="Redshift-408"><a href="#Redshift-408"><span class="linenos">408</span></a> <span class="k">def</span> <span class="nf">cast_sql</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">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">,</span> <span class="n">safe_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 class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift-409"><a href="#Redshift-409"><span class="linenos">409</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">exp</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="n">JSON</span><span class="p">):</span>
|
|
</span><span id="Redshift-410"><a href="#Redshift-410"><span class="linenos">410</span></a> <span class="c1"># Redshift doesn't support a JSON type, so casting to it is treated as a noop</span>
|
|
</span><span id="Redshift-411"><a href="#Redshift-411"><span class="linenos">411</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 class="n">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span>
|
|
</span><span id="Redshift-412"><a href="#Redshift-412"><span class="linenos">412</span></a>
|
|
</span><span id="Redshift-413"><a href="#Redshift-413"><span class="linenos">413</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">cast_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">safe_prefix</span><span class="o">=</span><span class="n">safe_prefix</span><span class="p">)</span>
|
|
</span><span id="Redshift-414"><a href="#Redshift-414"><span class="linenos">414</span></a>
|
|
</span><span id="Redshift-415"><a href="#Redshift-415"><span class="linenos">415</span></a> <span class="k">def</span> <span class="nf">datatype_sql</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">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift-416"><a href="#Redshift-416"><span class="linenos">416</span></a><span class="w"> </span><span class="sd">"""</span>
|
|
</span><span id="Redshift-417"><a href="#Redshift-417"><span class="linenos">417</span></a><span class="sd"> Redshift converts the `TEXT` data type to `VARCHAR(255)` by default when people more generally mean</span>
|
|
</span><span id="Redshift-418"><a href="#Redshift-418"><span class="linenos">418</span></a><span class="sd"> VARCHAR of max length which is `VARCHAR(max)` in Redshift. Therefore if we get a `TEXT` data type</span>
|
|
</span><span id="Redshift-419"><a href="#Redshift-419"><span class="linenos">419</span></a><span class="sd"> without precision we convert it to `VARCHAR(max)` and if it does have precision then we just convert</span>
|
|
</span><span id="Redshift-420"><a href="#Redshift-420"><span class="linenos">420</span></a><span class="sd"> `TEXT` to `VARCHAR`.</span>
|
|
</span><span id="Redshift-421"><a href="#Redshift-421"><span class="linenos">421</span></a><span class="sd"> """</span>
|
|
</span><span id="Redshift-422"><a href="#Redshift-422"><span class="linenos">422</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="s2">"text"</span><span class="p">):</span>
|
|
</span><span id="Redshift-423"><a href="#Redshift-423"><span class="linenos">423</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"this"</span><span class="p">,</span> <span class="n">exp</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="n">VARCHAR</span><span class="p">)</span>
|
|
</span><span id="Redshift-424"><a href="#Redshift-424"><span class="linenos">424</span></a> <span class="n">precision</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">)</span>
|
|
</span><span id="Redshift-425"><a href="#Redshift-425"><span class="linenos">425</span></a>
|
|
</span><span id="Redshift-426"><a href="#Redshift-426"><span class="linenos">426</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">precision</span><span class="p">:</span>
|
|
</span><span id="Redshift-427"><a href="#Redshift-427"><span class="linenos">427</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="s2">"MAX"</span><span class="p">))</span>
|
|
</span><span id="Redshift-428"><a href="#Redshift-428"><span class="linenos">428</span></a>
|
|
</span><span id="Redshift-429"><a href="#Redshift-429"><span class="linenos">429</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">datatype_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
|
|
</span><span id="Redshift-430"><a href="#Redshift-430"><span class="linenos">430</span></a>
|
|
</span><span id="Redshift-431"><a href="#Redshift-431"><span class="linenos">431</span></a> <span class="k">def</span> <span class="nf">alterset_sql</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">exp</span><span class="o">.</span><span class="n">AlterSet</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift-432"><a href="#Redshift-432"><span class="linenos">432</span></a> <span class="n">exprs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
</span><span id="Redshift-433"><a href="#Redshift-433"><span class="linenos">433</span></a> <span class="n">exprs</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" TABLE PROPERTIES (</span><span class="si">{</span><span class="n">exprs</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">exprs</span> <span class="k">else</span> <span class="s2">""</span>
|
|
</span><span id="Redshift-434"><a href="#Redshift-434"><span class="linenos">434</span></a> <span class="n">location</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"location"</span><span class="p">)</span>
|
|
</span><span id="Redshift-435"><a href="#Redshift-435"><span class="linenos">435</span></a> <span class="n">location</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" LOCATION </span><span class="si">{</span><span class="n">location</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">location</span> <span class="k">else</span> <span class="s2">""</span>
|
|
</span><span id="Redshift-436"><a href="#Redshift-436"><span class="linenos">436</span></a> <span class="n">file_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">"file_format"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">)</span>
|
|
</span><span id="Redshift-437"><a href="#Redshift-437"><span class="linenos">437</span></a> <span class="n">file_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FILE FORMAT </span><span class="si">{</span><span class="n">file_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">file_format</span> <span class="k">else</span> <span class="s2">""</span>
|
|
</span><span id="Redshift-438"><a href="#Redshift-438"><span class="linenos">438</span></a>
|
|
</span><span id="Redshift-439"><a href="#Redshift-439"><span class="linenos">439</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SET</span><span class="si">{</span><span class="n">exprs</span><span class="si">}{</span><span class="n">location</span><span class="si">}{</span><span class="n">file_format</span><span class="si">}</span><span class="s2">"</span>
|
|
</span><span id="Redshift-440"><a href="#Redshift-440"><span class="linenos">440</span></a>
|
|
</span><span id="Redshift-441"><a href="#Redshift-441"><span class="linenos">441</span></a> <span class="k">def</span> <span class="nf">array_sql</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">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift-442"><a href="#Redshift-442"><span class="linenos">442</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"bracket_notation"</span><span class="p">):</span>
|
|
</span><span id="Redshift-443"><a href="#Redshift-443"><span class="linenos">443</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">array_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
|
|
</span><span id="Redshift-444"><a href="#Redshift-444"><span class="linenos">444</span></a>
|
|
</span><span id="Redshift-445"><a href="#Redshift-445"><span class="linenos">445</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY"</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="Redshift-446"><a href="#Redshift-446"><span class="linenos">446</span></a>
|
|
</span><span id="Redshift-447"><a href="#Redshift-447"><span class="linenos">447</span></a> <span class="k">def</span> <span class="nf">explode_sql</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">exp</span><span class="o">.</span><span class="n">Explode</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift-448"><a href="#Redshift-448"><span class="linenos">448</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported EXPLODE() function"</span><span class="p">)</span>
|
|
</span><span id="Redshift-449"><a href="#Redshift-449"><span class="linenos">449</span></a> <span class="k">return</span> <span class="s2">""</span>
|
|
</span></pre></div>
|
|
|
|
|
|
|
|
|
|
<div id="Redshift.NORMALIZATION_STRATEGY" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">NORMALIZATION_STRATEGY</span> =
|
|
<span class="default_value"><NormalizationStrategy.CASE_INSENSITIVE: 'CASE_INSENSITIVE'></span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.NORMALIZATION_STRATEGY"></a>
|
|
|
|
<div class="docstring"><p>Specifies the strategy according to which identifiers should be normalized.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.SUPPORTS_USER_DEFINED_TYPES" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">SUPPORTS_USER_DEFINED_TYPES</span> =
|
|
<span class="default_value">False</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.SUPPORTS_USER_DEFINED_TYPES"></a>
|
|
|
|
<div class="docstring"><p>Whether user-defined data types are supported.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.INDEX_OFFSET" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">INDEX_OFFSET</span> =
|
|
<span class="default_value">0</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.INDEX_OFFSET"></a>
|
|
|
|
<div class="docstring"><p>The base index offset for arrays.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.COPY_PARAMS_ARE_CSV" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">COPY_PARAMS_ARE_CSV</span> =
|
|
<span class="default_value">False</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.COPY_PARAMS_ARE_CSV"></a>
|
|
|
|
<div class="docstring"><p>Whether COPY statement parameters are separated by comma or whitespace</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.HEX_LOWERCASE" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">HEX_LOWERCASE</span> =
|
|
<span class="default_value">True</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.HEX_LOWERCASE"></a>
|
|
|
|
<div class="docstring"><p>Whether the <code>HEX</code> function returns a lowercase hexadecimal string.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.HAS_DISTINCT_ARRAY_CONSTRUCTORS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">HAS_DISTINCT_ARRAY_CONSTRUCTORS</span> =
|
|
<span class="default_value">True</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.HAS_DISTINCT_ARRAY_CONSTRUCTORS"></a>
|
|
|
|
<div class="docstring"><p>Whether the ARRAY constructor is context-sensitive, i.e in Redshift ARRAY[1, 2, 3] != ARRAY(1, 2, 3)
|
|
as the former is of type INT[] vs the latter which is SUPER</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.TIME_FORMAT" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">TIME_FORMAT</span> =
|
|
<span class="default_value">"'YYYY-MM-DD HH24:MI:SS'"</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.TIME_FORMAT"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.TIME_MAPPING" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">TIME_MAPPING</span><span class="annotation">: Dict[str, str]</span> =
|
|
<input id="Redshift.TIME_MAPPING-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.TIME_MAPPING-view-value"></label><span class="default_value">{'AM': '%p', 'PM': '%p', 'D': '%u', 'DD': '%d', 'DDD': '%j', 'FMDD': '%-d', 'FMDDD': '%-j', 'FMHH12': '%-I', 'FMHH24': '%-H', 'FMMI': '%-M', 'FMMM': '%-m', 'FMSS': '%-S', 'HH12': '%I', 'HH24': '%H', 'MI': '%M', 'MM': '%m', 'OF': '%z', 'SS': '%S', 'TMDay': '%A', 'TMDy': '%a', 'TMMon': '%b', 'TMMonth': '%B', 'TZ': '%Z', 'US': '%f', 'WW': '%U', 'YY': '%y', 'YYYY': '%Y', 'MON': '%b', 'HH': '%I'}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.TIME_MAPPING"></a>
|
|
|
|
<div class="docstring"><p>Associates this dialect's time formats with their equivalent Python <code>strftime</code> formats.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.SUPPORTS_COLUMN_JOIN_MARKS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">SUPPORTS_COLUMN_JOIN_MARKS</span> =
|
|
<span class="default_value">True</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.SUPPORTS_COLUMN_JOIN_MARKS"></a>
|
|
|
|
<div class="docstring"><p>Whether the old-style outer join (+) syntax is supported.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.UNESCAPED_SEQUENCES" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">UNESCAPED_SEQUENCES</span><span class="annotation">: Dict[str, str]</span> =
|
|
<input id="Redshift.UNESCAPED_SEQUENCES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.UNESCAPED_SEQUENCES-view-value"></label><span class="default_value">{'\\a': '\x07', '\\b': '\x08', '\\f': '\x0c', '\\n': '\n', '\\r': '\r', '\\t': '\t', '\\v': '\x0b', '\\\\': '\\'}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.UNESCAPED_SEQUENCES"></a>
|
|
|
|
<div class="docstring"><p>Mapping of an escaped sequence (<code>\n</code>) to its unescaped version (<code>
|
|
</code>).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.tokenizer_class" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">tokenizer_class</span> =
|
|
<span class="default_value"><class '<a href="#Redshift.Tokenizer">Redshift.Tokenizer</a>'></span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.tokenizer_class"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.jsonpath_tokenizer_class" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">jsonpath_tokenizer_class</span> =
|
|
<span class="default_value"><class 'sqlglot.tokens.JSONPathTokenizer'></span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.jsonpath_tokenizer_class"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.parser_class" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">parser_class</span> =
|
|
<span class="default_value"><class '<a href="#Redshift.Parser">Redshift.Parser</a>'></span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.parser_class"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.generator_class" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">generator_class</span> =
|
|
<span class="default_value"><class '<a href="#Redshift.Generator">Redshift.Generator</a>'></span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.generator_class"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.TIME_TRIE" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">TIME_TRIE</span><span class="annotation">: Dict</span> =
|
|
<input id="Redshift.TIME_TRIE-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.TIME_TRIE-view-value"></label><span class="default_value">{'A': {'M': {0: True}}, 'P': {'M': {0: True}}, 'D': {0: True, 'D': {0: True, 'D': {0: True}}}, 'F': {'M': {'D': {'D': {0: True, 'D': {0: True}}}, 'H': {'H': {'1': {'2': {0: True}}, '2': {'4': {0: True}}}}, 'M': {'I': {0: True}, 'M': {0: True}}, 'S': {'S': {0: True}}}}, 'H': {'H': {'1': {'2': {0: True}}, '2': {'4': {0: True}}, 0: True}}, 'M': {'I': {0: True}, 'M': {0: True}, 'O': {'N': {0: True}}}, 'O': {'F': {0: True}}, 'S': {'S': {0: True}}, 'T': {'M': {'D': {'a': {'y': {0: True}}, 'y': {0: True}}, 'M': {'o': {'n': {0: True, 't': {'h': {0: True}}}}}}, 'Z': {0: True}}, 'U': {'S': {0: True}}, 'W': {'W': {0: True}}, 'Y': {'Y': {0: True, 'Y': {'Y': {0: True}}}}}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.TIME_TRIE"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.FORMAT_TRIE" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">FORMAT_TRIE</span><span class="annotation">: Dict</span> =
|
|
<input id="Redshift.FORMAT_TRIE-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.FORMAT_TRIE-view-value"></label><span class="default_value">{'A': {'M': {0: True}}, 'P': {'M': {0: True}}, 'D': {0: True, 'D': {0: True, 'D': {0: True}}}, 'F': {'M': {'D': {'D': {0: True, 'D': {0: True}}}, 'H': {'H': {'1': {'2': {0: True}}, '2': {'4': {0: True}}}}, 'M': {'I': {0: True}, 'M': {0: True}}, 'S': {'S': {0: True}}}}, 'H': {'H': {'1': {'2': {0: True}}, '2': {'4': {0: True}}, 0: True}}, 'M': {'I': {0: True}, 'M': {0: True}, 'O': {'N': {0: True}}}, 'O': {'F': {0: True}}, 'S': {'S': {0: True}}, 'T': {'M': {'D': {'a': {'y': {0: True}}, 'y': {0: True}}, 'M': {'o': {'n': {0: True, 't': {'h': {0: True}}}}}}, 'Z': {0: True}}, 'U': {'S': {0: True}}, 'W': {'W': {0: True}}, 'Y': {'Y': {0: True, 'Y': {'Y': {0: True}}}}}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.FORMAT_TRIE"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.INVERSE_TIME_MAPPING" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">INVERSE_TIME_MAPPING</span><span class="annotation">: Dict[str, str]</span> =
|
|
<input id="Redshift.INVERSE_TIME_MAPPING-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.INVERSE_TIME_MAPPING-view-value"></label><span class="default_value">{'%p': 'PM', '%u': 'D', '%d': 'DD', '%j': 'DDD', '%-d': 'FMDD', '%-j': 'FMDDD', '%-I': 'FMHH12', '%-H': 'FMHH24', '%-M': 'FMMI', '%-m': 'FMMM', '%-S': 'FMSS', '%I': 'HH', '%H': 'HH24', '%M': 'MI', '%m': 'MM', '%z': 'OF', '%S': 'SS', '%A': 'TMDay', '%a': 'TMDy', '%b': 'MON', '%B': 'TMMonth', '%Z': 'TZ', '%f': 'US', '%U': 'WW', '%y': 'YY', '%Y': 'YYYY'}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.INVERSE_TIME_MAPPING"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.INVERSE_TIME_TRIE" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">INVERSE_TIME_TRIE</span><span class="annotation">: Dict</span> =
|
|
<input id="Redshift.INVERSE_TIME_TRIE-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.INVERSE_TIME_TRIE-view-value"></label><span class="default_value">{'%': {'p': {0: True}, 'u': {0: True}, 'd': {0: True}, 'j': {0: True}, '-': {'d': {0: True}, 'j': {0: True}, 'I': {0: True}, 'H': {0: True}, 'M': {0: True}, 'm': {0: True}, 'S': {0: True}}, 'I': {0: True}, 'H': {0: True}, 'M': {0: True}, 'm': {0: True}, 'z': {0: True}, 'S': {0: True}, 'A': {0: True}, 'a': {0: True}, 'b': {0: True}, 'B': {0: True}, 'Z': {0: True}, 'f': {0: True}, 'U': {0: True}, 'y': {0: True}, 'Y': {0: True}}}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.INVERSE_TIME_TRIE"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.INVERSE_FORMAT_MAPPING" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">INVERSE_FORMAT_MAPPING</span><span class="annotation">: Dict[str, str]</span> =
|
|
<span class="default_value">{}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.INVERSE_FORMAT_MAPPING"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.INVERSE_FORMAT_TRIE" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">INVERSE_FORMAT_TRIE</span><span class="annotation">: Dict</span> =
|
|
<span class="default_value">{}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.INVERSE_FORMAT_TRIE"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.INVERSE_CREATABLE_KIND_MAPPING" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">INVERSE_CREATABLE_KIND_MAPPING</span><span class="annotation">: dict[str, str]</span> =
|
|
<span class="default_value">{}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.INVERSE_CREATABLE_KIND_MAPPING"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.ESCAPED_SEQUENCES" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">ESCAPED_SEQUENCES</span><span class="annotation">: Dict[str, str]</span> =
|
|
<input id="Redshift.ESCAPED_SEQUENCES-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.ESCAPED_SEQUENCES-view-value"></label><span class="default_value">{'\x07': '\\a', '\x08': '\\b', '\x0c': '\\f', '\n': '\\n', '\r': '\\r', '\t': '\\t', '\x0b': '\\v', '\\': '\\\\'}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.ESCAPED_SEQUENCES"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.QUOTE_START" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">QUOTE_START</span> =
|
|
<span class="default_value">"'"</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.QUOTE_START"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.QUOTE_END" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">QUOTE_END</span> =
|
|
<span class="default_value">"'"</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.QUOTE_END"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.IDENTIFIER_START" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">IDENTIFIER_START</span> =
|
|
<span class="default_value">'"'</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.IDENTIFIER_START"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.IDENTIFIER_END" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">IDENTIFIER_END</span> =
|
|
<span class="default_value">'"'</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.IDENTIFIER_END"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.BIT_START" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">BIT_START</span><span class="annotation">: Optional[str]</span> =
|
|
<span class="default_value">None</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.BIT_START"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.BIT_END" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">BIT_END</span><span class="annotation">: Optional[str]</span> =
|
|
<span class="default_value">None</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.BIT_END"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.HEX_START" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">HEX_START</span><span class="annotation">: Optional[str]</span> =
|
|
<span class="default_value">None</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.HEX_START"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.HEX_END" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">HEX_END</span><span class="annotation">: Optional[str]</span> =
|
|
<span class="default_value">None</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.HEX_END"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.BYTE_START" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">BYTE_START</span><span class="annotation">: Optional[str]</span> =
|
|
<span class="default_value">"e'"</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.BYTE_START"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.BYTE_END" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">BYTE_END</span><span class="annotation">: Optional[str]</span> =
|
|
<span class="default_value">"'"</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.BYTE_END"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.UNICODE_START" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">UNICODE_START</span><span class="annotation">: Optional[str]</span> =
|
|
<span class="default_value">None</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.UNICODE_START"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.UNICODE_END" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">UNICODE_END</span><span class="annotation">: Optional[str]</span> =
|
|
<span class="default_value">None</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.UNICODE_END"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></dt>
|
|
<dd id="Redshift.__init__" class="function"><a href="dialect.html#Dialect.__init__">Dialect</a></dd>
|
|
<dd id="Redshift.WEEK_OFFSET" class="variable"><a href="dialect.html#Dialect.WEEK_OFFSET">WEEK_OFFSET</a></dd>
|
|
<dd id="Redshift.UNNEST_COLUMN_ONLY" class="variable"><a href="dialect.html#Dialect.UNNEST_COLUMN_ONLY">UNNEST_COLUMN_ONLY</a></dd>
|
|
<dd id="Redshift.ALIAS_POST_TABLESAMPLE" class="variable"><a href="dialect.html#Dialect.ALIAS_POST_TABLESAMPLE">ALIAS_POST_TABLESAMPLE</a></dd>
|
|
<dd id="Redshift.IDENTIFIERS_CAN_START_WITH_DIGIT" class="variable"><a href="dialect.html#Dialect.IDENTIFIERS_CAN_START_WITH_DIGIT">IDENTIFIERS_CAN_START_WITH_DIGIT</a></dd>
|
|
<dd id="Redshift.DPIPE_IS_STRING_CONCAT" class="variable"><a href="dialect.html#Dialect.DPIPE_IS_STRING_CONCAT">DPIPE_IS_STRING_CONCAT</a></dd>
|
|
<dd id="Redshift.STRICT_STRING_CONCAT" class="variable"><a href="dialect.html#Dialect.STRICT_STRING_CONCAT">STRICT_STRING_CONCAT</a></dd>
|
|
<dd id="Redshift.SUPPORTS_SEMI_ANTI_JOIN" class="variable"><a href="dialect.html#Dialect.SUPPORTS_SEMI_ANTI_JOIN">SUPPORTS_SEMI_ANTI_JOIN</a></dd>
|
|
<dd id="Redshift.NORMALIZE_FUNCTIONS" class="variable"><a href="dialect.html#Dialect.NORMALIZE_FUNCTIONS">NORMALIZE_FUNCTIONS</a></dd>
|
|
<dd id="Redshift.LOG_BASE_FIRST" class="variable"><a href="dialect.html#Dialect.LOG_BASE_FIRST">LOG_BASE_FIRST</a></dd>
|
|
<dd id="Redshift.SAFE_DIVISION" class="variable"><a href="dialect.html#Dialect.SAFE_DIVISION">SAFE_DIVISION</a></dd>
|
|
<dd id="Redshift.DATE_FORMAT" class="variable"><a href="dialect.html#Dialect.DATE_FORMAT">DATE_FORMAT</a></dd>
|
|
<dd id="Redshift.DATEINT_FORMAT" class="variable"><a href="dialect.html#Dialect.DATEINT_FORMAT">DATEINT_FORMAT</a></dd>
|
|
<dd id="Redshift.FORMAT_MAPPING" class="variable"><a href="dialect.html#Dialect.FORMAT_MAPPING">FORMAT_MAPPING</a></dd>
|
|
<dd id="Redshift.PSEUDOCOLUMNS" class="variable"><a href="dialect.html#Dialect.PSEUDOCOLUMNS">PSEUDOCOLUMNS</a></dd>
|
|
<dd id="Redshift.PREFER_CTE_ALIAS_COLUMN" class="variable"><a href="dialect.html#Dialect.PREFER_CTE_ALIAS_COLUMN">PREFER_CTE_ALIAS_COLUMN</a></dd>
|
|
<dd id="Redshift.FORCE_EARLY_ALIAS_REF_EXPANSION" class="variable"><a href="dialect.html#Dialect.FORCE_EARLY_ALIAS_REF_EXPANSION">FORCE_EARLY_ALIAS_REF_EXPANSION</a></dd>
|
|
<dd id="Redshift.EXPAND_ALIAS_REFS_EARLY_ONLY_IN_GROUP_BY" class="variable"><a href="dialect.html#Dialect.EXPAND_ALIAS_REFS_EARLY_ONLY_IN_GROUP_BY">EXPAND_ALIAS_REFS_EARLY_ONLY_IN_GROUP_BY</a></dd>
|
|
<dd id="Redshift.SUPPORTS_ORDER_BY_ALL" class="variable"><a href="dialect.html#Dialect.SUPPORTS_ORDER_BY_ALL">SUPPORTS_ORDER_BY_ALL</a></dd>
|
|
<dd id="Redshift.SUPPORTS_FIXED_SIZE_ARRAYS" class="variable"><a href="dialect.html#Dialect.SUPPORTS_FIXED_SIZE_ARRAYS">SUPPORTS_FIXED_SIZE_ARRAYS</a></dd>
|
|
<dd id="Redshift.STRICT_JSON_PATH_SYNTAX" class="variable"><a href="dialect.html#Dialect.STRICT_JSON_PATH_SYNTAX">STRICT_JSON_PATH_SYNTAX</a></dd>
|
|
<dd id="Redshift.ON_CONDITION_EMPTY_BEFORE_ERROR" class="variable"><a href="dialect.html#Dialect.ON_CONDITION_EMPTY_BEFORE_ERROR">ON_CONDITION_EMPTY_BEFORE_ERROR</a></dd>
|
|
<dd id="Redshift.ARRAY_AGG_INCLUDES_NULLS" class="variable"><a href="dialect.html#Dialect.ARRAY_AGG_INCLUDES_NULLS">ARRAY_AGG_INCLUDES_NULLS</a></dd>
|
|
<dd id="Redshift.REGEXP_EXTRACT_DEFAULT_GROUP" class="variable"><a href="dialect.html#Dialect.REGEXP_EXTRACT_DEFAULT_GROUP">REGEXP_EXTRACT_DEFAULT_GROUP</a></dd>
|
|
<dd id="Redshift.SET_OP_DISTINCT_BY_DEFAULT" class="variable"><a href="dialect.html#Dialect.SET_OP_DISTINCT_BY_DEFAULT">SET_OP_DISTINCT_BY_DEFAULT</a></dd>
|
|
<dd id="Redshift.CREATABLE_KIND_MAPPING" class="variable"><a href="dialect.html#Dialect.CREATABLE_KIND_MAPPING">CREATABLE_KIND_MAPPING</a></dd>
|
|
<dd id="Redshift.DATE_PART_MAPPING" class="variable"><a href="dialect.html#Dialect.DATE_PART_MAPPING">DATE_PART_MAPPING</a></dd>
|
|
<dd id="Redshift.TYPE_TO_EXPRESSIONS" class="variable"><a href="dialect.html#Dialect.TYPE_TO_EXPRESSIONS">TYPE_TO_EXPRESSIONS</a></dd>
|
|
<dd id="Redshift.ANNOTATORS" class="variable"><a href="dialect.html#Dialect.ANNOTATORS">ANNOTATORS</a></dd>
|
|
<dd id="Redshift.get_or_raise" class="function"><a href="dialect.html#Dialect.get_or_raise">get_or_raise</a></dd>
|
|
<dd id="Redshift.format_time" class="function"><a href="dialect.html#Dialect.format_time">format_time</a></dd>
|
|
<dd id="Redshift.settings" class="variable"><a href="dialect.html#Dialect.settings">settings</a></dd>
|
|
<dd id="Redshift.normalize_identifier" class="function"><a href="dialect.html#Dialect.normalize_identifier">normalize_identifier</a></dd>
|
|
<dd id="Redshift.case_sensitive" class="function"><a href="dialect.html#Dialect.case_sensitive">case_sensitive</a></dd>
|
|
<dd id="Redshift.can_identify" class="function"><a href="dialect.html#Dialect.can_identify">can_identify</a></dd>
|
|
<dd id="Redshift.quote_identifier" class="function"><a href="dialect.html#Dialect.quote_identifier">quote_identifier</a></dd>
|
|
<dd id="Redshift.to_json_path" class="function"><a href="dialect.html#Dialect.to_json_path">to_json_path</a></dd>
|
|
<dd id="Redshift.parse" class="function"><a href="dialect.html#Dialect.parse">parse</a></dd>
|
|
<dd id="Redshift.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd>
|
|
<dd id="Redshift.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd>
|
|
<dd id="Redshift.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd>
|
|
<dd id="Redshift.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd>
|
|
<dd id="Redshift.tokenizer" class="variable"><a href="dialect.html#Dialect.tokenizer">tokenizer</a></dd>
|
|
<dd id="Redshift.jsonpath_tokenizer" class="variable"><a href="dialect.html#Dialect.jsonpath_tokenizer">jsonpath_tokenizer</a></dd>
|
|
<dd id="Redshift.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd>
|
|
<dd id="Redshift.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="postgres.html#Postgres">sqlglot.dialects.postgres.Postgres</a></dt>
|
|
<dd id="Redshift.TYPED_DIVISION" class="variable"><a href="postgres.html#Postgres.TYPED_DIVISION">TYPED_DIVISION</a></dd>
|
|
<dd id="Redshift.CONCAT_COALESCE" class="variable"><a href="postgres.html#Postgres.CONCAT_COALESCE">CONCAT_COALESCE</a></dd>
|
|
<dd id="Redshift.NULL_ORDERING" class="variable"><a href="postgres.html#Postgres.NULL_ORDERING">NULL_ORDERING</a></dd>
|
|
<dd id="Redshift.TABLESAMPLE_SIZE_IS_PERCENT" class="variable"><a href="postgres.html#Postgres.TABLESAMPLE_SIZE_IS_PERCENT">TABLESAMPLE_SIZE_IS_PERCENT</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="Redshift.Parser">
|
|
<input id="Redshift.Parser-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<div class="attr class">
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">Redshift.Parser</span><wbr>(<span class="base"><a href="postgres.html#Postgres.Parser">sqlglot.dialects.postgres.Postgres.Parser</a></span>):
|
|
|
|
<label class="view-source-button" for="Redshift.Parser-view-source"><span>View Source</span></label>
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Parser"></a>
|
|
<div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Parser-56"><a href="#Redshift.Parser-56"><span class="linenos"> 56</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span>
|
|
</span><span id="Redshift.Parser-57"><a href="#Redshift.Parser-57"><span class="linenos"> 57</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="Redshift.Parser-58"><a href="#Redshift.Parser-58"><span class="linenos"> 58</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span>
|
|
</span><span id="Redshift.Parser-59"><a href="#Redshift.Parser-59"><span class="linenos"> 59</span></a> <span class="s2">"ADD_MONTHS"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">(</span>
|
|
</span><span id="Redshift.Parser-60"><a href="#Redshift.Parser-60"><span class="linenos"> 60</span></a> <span class="n">this</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
|
|
</span><span id="Redshift.Parser-61"><a href="#Redshift.Parser-61"><span class="linenos"> 61</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span>
|
|
</span><span id="Redshift.Parser-62"><a href="#Redshift.Parser-62"><span class="linenos"> 62</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="s2">"month"</span><span class="p">),</span>
|
|
</span><span id="Redshift.Parser-63"><a href="#Redshift.Parser-63"><span class="linenos"> 63</span></a> <span class="n">return_type</span><span class="o">=</span><span class="n">exp</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="s2">"TIMESTAMP"</span><span class="p">),</span>
|
|
</span><span id="Redshift.Parser-64"><a href="#Redshift.Parser-64"><span class="linenos"> 64</span></a> <span class="p">),</span>
|
|
</span><span id="Redshift.Parser-65"><a href="#Redshift.Parser-65"><span class="linenos"> 65</span></a> <span class="s2">"CONVERT_TIMEZONE"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">build_convert_timezone</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="s2">"UTC"</span><span class="p">),</span>
|
|
</span><span id="Redshift.Parser-66"><a href="#Redshift.Parser-66"><span class="linenos"> 66</span></a> <span class="s2">"DATEADD"</span><span class="p">:</span> <span class="n">_build_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">),</span>
|
|
</span><span id="Redshift.Parser-67"><a href="#Redshift.Parser-67"><span class="linenos"> 67</span></a> <span class="s2">"DATE_ADD"</span><span class="p">:</span> <span class="n">_build_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">),</span>
|
|
</span><span id="Redshift.Parser-68"><a href="#Redshift.Parser-68"><span class="linenos"> 68</span></a> <span class="s2">"DATEDIFF"</span><span class="p">:</span> <span class="n">_build_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsDiff</span><span class="p">),</span>
|
|
</span><span id="Redshift.Parser-69"><a href="#Redshift.Parser-69"><span class="linenos"> 69</span></a> <span class="s2">"DATE_DIFF"</span><span class="p">:</span> <span class="n">_build_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsDiff</span><span class="p">),</span>
|
|
</span><span id="Redshift.Parser-70"><a href="#Redshift.Parser-70"><span class="linenos"> 70</span></a> <span class="s2">"GETDATE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span>
|
|
</span><span id="Redshift.Parser-71"><a href="#Redshift.Parser-71"><span class="linenos"> 71</span></a> <span class="s2">"LISTAGG"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span>
|
|
</span><span id="Redshift.Parser-72"><a href="#Redshift.Parser-72"><span class="linenos"> 72</span></a> <span class="s2">"SPLIT_TO_ARRAY"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">StringToArray</span><span class="p">(</span>
|
|
</span><span id="Redshift.Parser-73"><a href="#Redshift.Parser-73"><span class="linenos"> 73</span></a> <span class="n">this</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="ow">or</span> <span class="n">exp</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">","</span><span class="p">)</span>
|
|
</span><span id="Redshift.Parser-74"><a href="#Redshift.Parser-74"><span class="linenos"> 74</span></a> <span class="p">),</span>
|
|
</span><span id="Redshift.Parser-75"><a href="#Redshift.Parser-75"><span class="linenos"> 75</span></a> <span class="s2">"STRTOL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">FromBase</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span>
|
|
</span><span id="Redshift.Parser-76"><a href="#Redshift.Parser-76"><span class="linenos"> 76</span></a> <span class="p">}</span>
|
|
</span><span id="Redshift.Parser-77"><a href="#Redshift.Parser-77"><span class="linenos"> 77</span></a>
|
|
</span><span id="Redshift.Parser-78"><a href="#Redshift.Parser-78"><span class="linenos"> 78</span></a> <span class="n">NO_PAREN_FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="Redshift.Parser-79"><a href="#Redshift.Parser-79"><span class="linenos"> 79</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTION_PARSERS</span><span class="p">,</span>
|
|
</span><span id="Redshift.Parser-80"><a href="#Redshift.Parser-80"><span class="linenos"> 80</span></a> <span class="s2">"APPROXIMATE"</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_approximate_count</span><span class="p">(),</span>
|
|
</span><span id="Redshift.Parser-81"><a href="#Redshift.Parser-81"><span class="linenos"> 81</span></a> <span class="s2">"SYSDATE"</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">,</span> <span class="n">sysdate</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span>
|
|
</span><span id="Redshift.Parser-82"><a href="#Redshift.Parser-82"><span class="linenos"> 82</span></a> <span class="p">}</span>
|
|
</span><span id="Redshift.Parser-83"><a href="#Redshift.Parser-83"><span class="linenos"> 83</span></a>
|
|
</span><span id="Redshift.Parser-84"><a href="#Redshift.Parser-84"><span class="linenos"> 84</span></a> <span class="n">SUPPORTS_IMPLICIT_UNNEST</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift.Parser-85"><a href="#Redshift.Parser-85"><span class="linenos"> 85</span></a>
|
|
</span><span id="Redshift.Parser-86"><a href="#Redshift.Parser-86"><span class="linenos"> 86</span></a> <span class="k">def</span> <span class="nf">_parse_table</span><span class="p">(</span>
|
|
</span><span id="Redshift.Parser-87"><a href="#Redshift.Parser-87"><span class="linenos"> 87</span></a> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="Redshift.Parser-88"><a href="#Redshift.Parser-88"><span class="linenos"> 88</span></a> <span class="n">schema</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="Redshift.Parser-89"><a href="#Redshift.Parser-89"><span class="linenos"> 89</span></a> <span class="n">joins</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="Redshift.Parser-90"><a href="#Redshift.Parser-90"><span class="linenos"> 90</span></a> <span class="n">alias_tokens</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">Collection</span><span class="p">[</span><span class="n">TokenType</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
</span><span id="Redshift.Parser-91"><a href="#Redshift.Parser-91"><span class="linenos"> 91</span></a> <span class="n">parse_bracket</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="Redshift.Parser-92"><a href="#Redshift.Parser-92"><span class="linenos"> 92</span></a> <span class="n">is_db_reference</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="Redshift.Parser-93"><a href="#Redshift.Parser-93"><span class="linenos"> 93</span></a> <span class="n">parse_partition</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="Redshift.Parser-94"><a href="#Redshift.Parser-94"><span class="linenos"> 94</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]:</span>
|
|
</span><span id="Redshift.Parser-95"><a href="#Redshift.Parser-95"><span class="linenos"> 95</span></a> <span class="c1"># Redshift supports UNPIVOTing SUPER objects, e.g. `UNPIVOT foo.obj[0] AS val AT attr`</span>
|
|
</span><span id="Redshift.Parser-96"><a href="#Redshift.Parser-96"><span class="linenos"> 96</span></a> <span class="n">unpivot</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">UNPIVOT</span><span class="p">)</span>
|
|
</span><span id="Redshift.Parser-97"><a href="#Redshift.Parser-97"><span class="linenos"> 97</span></a> <span class="n">table</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span>
|
|
</span><span id="Redshift.Parser-98"><a href="#Redshift.Parser-98"><span class="linenos"> 98</span></a> <span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">,</span>
|
|
</span><span id="Redshift.Parser-99"><a href="#Redshift.Parser-99"><span class="linenos"> 99</span></a> <span class="n">joins</span><span class="o">=</span><span class="n">joins</span><span class="p">,</span>
|
|
</span><span id="Redshift.Parser-100"><a href="#Redshift.Parser-100"><span class="linenos">100</span></a> <span class="n">alias_tokens</span><span class="o">=</span><span class="n">alias_tokens</span><span class="p">,</span>
|
|
</span><span id="Redshift.Parser-101"><a href="#Redshift.Parser-101"><span class="linenos">101</span></a> <span class="n">parse_bracket</span><span class="o">=</span><span class="n">parse_bracket</span><span class="p">,</span>
|
|
</span><span id="Redshift.Parser-102"><a href="#Redshift.Parser-102"><span class="linenos">102</span></a> <span class="n">is_db_reference</span><span class="o">=</span><span class="n">is_db_reference</span><span class="p">,</span>
|
|
</span><span id="Redshift.Parser-103"><a href="#Redshift.Parser-103"><span class="linenos">103</span></a> <span class="p">)</span>
|
|
</span><span id="Redshift.Parser-104"><a href="#Redshift.Parser-104"><span class="linenos">104</span></a>
|
|
</span><span id="Redshift.Parser-105"><a href="#Redshift.Parser-105"><span class="linenos">105</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Pivot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">table</span><span class="p">,</span> <span class="n">unpivot</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="k">if</span> <span class="n">unpivot</span> <span class="k">else</span> <span class="n">table</span>
|
|
</span><span id="Redshift.Parser-106"><a href="#Redshift.Parser-106"><span class="linenos">106</span></a>
|
|
</span><span id="Redshift.Parser-107"><a href="#Redshift.Parser-107"><span class="linenos">107</span></a> <span class="k">def</span> <span class="nf">_parse_convert</span><span class="p">(</span>
|
|
</span><span id="Redshift.Parser-108"><a href="#Redshift.Parser-108"><span class="linenos">108</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">strict</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="n">safe</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><span id="Redshift.Parser-109"><a href="#Redshift.Parser-109"><span class="linenos">109</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]:</span>
|
|
</span><span id="Redshift.Parser-110"><a href="#Redshift.Parser-110"><span class="linenos">110</span></a> <span class="n">to</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">()</span>
|
|
</span><span id="Redshift.Parser-111"><a href="#Redshift.Parser-111"><span class="linenos">111</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">COMMA</span><span class="p">)</span>
|
|
</span><span id="Redshift.Parser-112"><a href="#Redshift.Parser-112"><span class="linenos">112</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">()</span>
|
|
</span><span id="Redshift.Parser-113"><a href="#Redshift.Parser-113"><span class="linenos">113</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TryCast</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">to</span><span class="o">=</span><span class="n">to</span><span class="p">,</span> <span class="n">safe</span><span class="o">=</span><span class="n">safe</span><span class="p">)</span>
|
|
</span><span id="Redshift.Parser-114"><a href="#Redshift.Parser-114"><span class="linenos">114</span></a>
|
|
</span><span id="Redshift.Parser-115"><a href="#Redshift.Parser-115"><span class="linenos">115</span></a> <span class="k">def</span> <span class="nf">_parse_approximate_count</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">]:</span>
|
|
</span><span id="Redshift.Parser-116"><a href="#Redshift.Parser-116"><span class="linenos">116</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">-</span> <span class="mi">1</span>
|
|
</span><span id="Redshift.Parser-117"><a href="#Redshift.Parser-117"><span class="linenos">117</span></a> <span class="n">func</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span>
|
|
</span><span id="Redshift.Parser-118"><a href="#Redshift.Parser-118"><span class="linenos">118</span></a>
|
|
</span><span id="Redshift.Parser-119"><a href="#Redshift.Parser-119"><span class="linenos">119</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Count</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">):</span>
|
|
</span><span id="Redshift.Parser-120"><a href="#Redshift.Parser-120"><span class="linenos">120</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">seq_get</span><span class="p">(</span><span class="n">func</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
|
|
</span><span id="Redshift.Parser-121"><a href="#Redshift.Parser-121"><span class="linenos">121</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_retreat</span><span class="p">(</span><span class="n">index</span><span class="p">)</span>
|
|
</span><span id="Redshift.Parser-122"><a href="#Redshift.Parser-122"><span class="linenos">122</span></a> <span class="k">return</span> <span class="kc">None</span>
|
|
</span></pre></div>
|
|
|
|
|
|
<div class="docstring"><p>Parser consumes a list of tokens produced by the Tokenizer and produces a parsed syntax tree.</p>
|
|
|
|
<h6 id="arguments">Arguments:</h6>
|
|
|
|
<ul>
|
|
<li><strong>error_level:</strong> The desired error level.
|
|
Default: ErrorLevel.IMMEDIATE</li>
|
|
<li><strong>error_message_context:</strong> The amount of context to capture from a query string when displaying
|
|
the error message (in number of characters).
|
|
Default: 100</li>
|
|
<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.
|
|
This is only relevant if error_level is ErrorLevel.RAISE.
|
|
Default: 3</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<div id="Redshift.Parser.FUNCTIONS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">FUNCTIONS</span> =
|
|
<input id="Redshift.Parser.FUNCTIONS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.Parser.FUNCTIONS-view-value"></label><span class="default_value">{'ABS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Abs">sqlglot.expressions.Abs</a>'>>, 'ADD_MONTHS': <function <a href="#Redshift.Parser">Redshift.Parser</a>.<lambda>>, 'ANONYMOUS_AGG_FUNC': <bound method Func.from_arg_list of <class '<a href="../expressions.html#AnonymousAggFunc">sqlglot.expressions.AnonymousAggFunc</a>'>>, 'ANY_VALUE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#AnyValue">sqlglot.expressions.AnyValue</a>'>>, 'APPLY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Apply">sqlglot.expressions.Apply</a>'>>, 'APPROX_DISTINCT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ApproxDistinct">sqlglot.expressions.ApproxDistinct</a>'>>, 'APPROX_COUNT_DISTINCT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ApproxDistinct">sqlglot.expressions.ApproxDistinct</a>'>>, 'APPROX_QUANTILE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ApproxQuantile">sqlglot.expressions.ApproxQuantile</a>'>>, 'APPROX_TOP_K': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ApproxTopK">sqlglot.expressions.ApproxTopK</a>'>>, 'ARG_MAX': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArgMax">sqlglot.expressions.ArgMax</a>'>>, 'ARGMAX': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArgMax">sqlglot.expressions.ArgMax</a>'>>, 'MAX_BY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArgMax">sqlglot.expressions.ArgMax</a>'>>, 'ARG_MIN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArgMin">sqlglot.expressions.ArgMin</a>'>>, 'ARGMIN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArgMin">sqlglot.expressions.ArgMin</a>'>>, 'MIN_BY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArgMin">sqlglot.expressions.ArgMin</a>'>>, 'ARRAY': <function Parser.<lambda>>, 'ARRAY_AGG': <function Parser.<lambda>>, 'ARRAY_ALL': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayAll">sqlglot.expressions.ArrayAll</a>'>>, 'ARRAY_ANY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayAny">sqlglot.expressions.ArrayAny</a>'>>, 'ARRAY_CONCAT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayConcat">sqlglot.expressions.ArrayConcat</a>'>>, 'ARRAY_CAT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayConcat">sqlglot.expressions.ArrayConcat</a>'>>, 'ARRAY_CONSTRUCT_COMPACT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayConstructCompact">sqlglot.expressions.ArrayConstructCompact</a>'>>, 'ARRAY_CONTAINS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayContains">sqlglot.expressions.ArrayContains</a>'>>, 'ARRAY_HAS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayContains">sqlglot.expressions.ArrayContains</a>'>>, 'ARRAY_CONTAINS_ALL': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayContainsAll">sqlglot.expressions.ArrayContainsAll</a>'>>, 'ARRAY_HAS_ALL': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayContainsAll">sqlglot.expressions.ArrayContainsAll</a>'>>, 'FILTER': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayFilter">sqlglot.expressions.ArrayFilter</a>'>>, 'ARRAY_FILTER': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayFilter">sqlglot.expressions.ArrayFilter</a>'>>, 'ARRAY_OVERLAPS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayOverlaps">sqlglot.expressions.ArrayOverlaps</a>'>>, 'ARRAY_SIZE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArraySize">sqlglot.expressions.ArraySize</a>'>>, 'ARRAY_LENGTH': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArraySize">sqlglot.expressions.ArraySize</a>'>>, 'ARRAY_SORT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArraySort">sqlglot.expressions.ArraySort</a>'>>, 'ARRAY_SUM': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArraySum">sqlglot.expressions.ArraySum</a>'>>, 'ARRAY_TO_STRING': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayToString">sqlglot.expressions.ArrayToString</a>'>>, 'ARRAY_JOIN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayToString">sqlglot.expressions.ArrayToString</a>'>>, 'ARRAY_UNION_AGG': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayUnionAgg">sqlglot.expressions.ArrayUnionAgg</a>'>>, 'ARRAY_UNIQUE_AGG': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ArrayUniqueAgg">sqlglot.expressions.ArrayUniqueAgg</a>'>>, 'AVG': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Avg">sqlglot.expressions.Avg</a>'>>, 'CASE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Case">sqlglot.expressions.Case</a>'>>, 'CAST': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Cast">sqlglot.expressions.Cast</a>'>>, 'CAST_TO_STR_TYPE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CastToStrType">sqlglot.expressions.CastToStrType</a>'>>, 'CBRT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Cbrt">sqlglot.expressions.Cbrt</a>'>>, 'CEIL': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Ceil">sqlglot.expressions.Ceil</a>'>>, 'CEILING': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Ceil">sqlglot.expressions.Ceil</a>'>>, 'CHR': <function Parser.<lambda>>, 'CHAR': <function Parser.<lambda>>, 'COALESCE': <function build_coalesce>, 'IFNULL': <function build_coalesce>, 'NVL': <function build_coalesce>, 'COLLATE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Collate">sqlglot.expressions.Collate</a>'>>, 'COLUMNS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Columns">sqlglot.expressions.Columns</a>'>>, 'COMBINED_AGG_FUNC': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CombinedAggFunc">sqlglot.expressions.CombinedAggFunc</a>'>>, 'COMBINED_PARAMETERIZED_AGG': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CombinedParameterizedAgg">sqlglot.expressions.CombinedParameterizedAgg</a>'>>, 'CONCAT': <function Parser.<lambda>>, 'CONCAT_WS': <function Parser.<lambda>>, 'CONNECT_BY_ROOT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ConnectByRoot">sqlglot.expressions.ConnectByRoot</a>'>>, 'CONTAINS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Contains">sqlglot.expressions.Contains</a>'>>, 'CONVERT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Convert">sqlglot.expressions.Convert</a>'>>, 'CONVERT_TIMEZONE': <function <a href="#Redshift.Parser">Redshift.Parser</a>.<lambda>>, 'CORR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Corr">sqlglot.expressions.Corr</a>'>>, 'COUNT': <function Parser.<lambda>>, 'COUNT_IF': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CountIf">sqlglot.expressions.CountIf</a>'>>, 'COUNTIF': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CountIf">sqlglot.expressions.CountIf</a>'>>, 'COVAR_POP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CovarPop">sqlglot.expressions.CovarPop</a>'>>, 'COVAR_SAMP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CovarSamp">sqlglot.expressions.CovarSamp</a>'>>, 'CURRENT_DATE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CurrentDate">sqlglot.expressions.CurrentDate</a>'>>, 'CURRENT_DATETIME': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CurrentDatetime">sqlglot.expressions.CurrentDatetime</a>'>>, 'CURRENT_TIME': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CurrentTime">sqlglot.expressions.CurrentTime</a>'>>, 'CURRENT_TIMESTAMP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CurrentTimestamp">sqlglot.expressions.CurrentTimestamp</a>'>>, 'CURRENT_USER': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CurrentUser">sqlglot.expressions.CurrentUser</a>'>>, 'DATE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Date">sqlglot.expressions.Date</a>'>>, 'DATE_ADD': <function _build_date_delta.<locals>._builder>, 'DATEDIFF': <function _build_date_delta.<locals>._builder>, 'DATE_DIFF': <function _build_date_delta.<locals>._builder>, 'DATE_FROM_PARTS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DateFromParts">sqlglot.expressions.DateFromParts</a>'>>, 'DATEFROMPARTS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DateFromParts">sqlglot.expressions.DateFromParts</a>'>>, 'DATE_STR_TO_DATE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DateStrToDate">sqlglot.expressions.DateStrToDate</a>'>>, 'DATE_SUB': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DateSub">sqlglot.expressions.DateSub</a>'>>, 'DATE_TO_DATE_STR': <function Parser.<lambda>>, 'DATE_TO_DI': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DateToDi">sqlglot.expressions.DateToDi</a>'>>, 'DATE_TRUNC': <function build_timestamp_trunc>, 'DATETIME': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Datetime">sqlglot.expressions.Datetime</a>'>>, 'DATETIME_ADD': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DatetimeAdd">sqlglot.expressions.DatetimeAdd</a>'>>, 'DATETIME_DIFF': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DatetimeDiff">sqlglot.expressions.DatetimeDiff</a>'>>, 'DATETIME_SUB': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DatetimeSub">sqlglot.expressions.DatetimeSub</a>'>>, 'DATETIME_TRUNC': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DatetimeTrunc">sqlglot.expressions.DatetimeTrunc</a>'>>, 'DAY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Day">sqlglot.expressions.Day</a>'>>, 'DAY_OF_MONTH': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DayOfMonth">sqlglot.expressions.DayOfMonth</a>'>>, 'DAYOFMONTH': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DayOfMonth">sqlglot.expressions.DayOfMonth</a>'>>, 'DAY_OF_WEEK': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DayOfWeek">sqlglot.expressions.DayOfWeek</a>'>>, 'DAYOFWEEK': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DayOfWeek">sqlglot.expressions.DayOfWeek</a>'>>, 'DAYOFWEEK_ISO': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DayOfWeekIso">sqlglot.expressions.DayOfWeekIso</a>'>>, 'ISODOW': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DayOfWeekIso">sqlglot.expressions.DayOfWeekIso</a>'>>, 'DAY_OF_YEAR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DayOfYear">sqlglot.expressions.DayOfYear</a>'>>, 'DAYOFYEAR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DayOfYear">sqlglot.expressions.DayOfYear</a>'>>, 'DECODE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Decode">sqlglot.expressions.Decode</a>'>>, 'DI_TO_DATE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#DiToDate">sqlglot.expressions.DiToDate</a>'>>, 'ENCODE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Encode">sqlglot.expressions.Encode</a>'>>, 'EXISTS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Exists">sqlglot.expressions.Exists</a>'>>, 'EXP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Exp">sqlglot.expressions.Exp</a>'>>, 'EXPLODE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Explode">sqlglot.expressions.Explode</a>'>>, 'EXPLODE_OUTER': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ExplodeOuter">sqlglot.expressions.ExplodeOuter</a>'>>, 'EXPLODING_GENERATE_SERIES': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ExplodingGenerateSeries">sqlglot.expressions.ExplodingGenerateSeries</a>'>>, 'EXTRACT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Extract">sqlglot.expressions.Extract</a>'>>, 'FIRST': <bound method Func.from_arg_list of <class '<a href="../expressions.html#First">sqlglot.expressions.First</a>'>>, 'FIRST_VALUE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#FirstValue">sqlglot.expressions.FirstValue</a>'>>, 'FLATTEN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Flatten">sqlglot.expressions.Flatten</a>'>>, 'FLOOR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Floor">sqlglot.expressions.Floor</a>'>>, 'FROM_BASE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#FromBase">sqlglot.expressions.FromBase</a>'>>, 'FROM_BASE64': <bound method Func.from_arg_list of <class '<a href="../expressions.html#FromBase64">sqlglot.expressions.FromBase64</a>'>>, 'FROM_ISO8601_TIMESTAMP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#FromISO8601Timestamp">sqlglot.expressions.FromISO8601Timestamp</a>'>>, 'GAP_FILL': <bound method Func.from_arg_list of <class '<a href="../expressions.html#GapFill">sqlglot.expressions.GapFill</a>'>>, 'GENERATE_DATE_ARRAY': <function Parser.<lambda>>, 'GENERATE_SERIES': <function _build_generate_series>, 'GENERATE_TIMESTAMP_ARRAY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#GenerateTimestampArray">sqlglot.expressions.GenerateTimestampArray</a>'>>, 'GREATEST': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Greatest">sqlglot.expressions.Greatest</a>'>>, 'GROUP_CONCAT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#GroupConcat">sqlglot.expressions.GroupConcat</a>'>>, 'HEX': <function build_hex>, 'HLL': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Hll">sqlglot.expressions.Hll</a>'>>, 'IF': <bound method Func.from_arg_list of <class '<a href="../expressions.html#If">sqlglot.expressions.If</a>'>>, 'IIF': <bound method Func.from_arg_list of <class '<a href="../expressions.html#If">sqlglot.expressions.If</a>'>>, 'INITCAP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Initcap">sqlglot.expressions.Initcap</a>'>>, 'INLINE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Inline">sqlglot.expressions.Inline</a>'>>, 'INT64': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Int64">sqlglot.expressions.Int64</a>'>>, 'IS_INF': <bound method Func.from_arg_list of <class '<a href="../expressions.html#IsInf">sqlglot.expressions.IsInf</a>'>>, 'ISINF': <bound method Func.from_arg_list of <class '<a href="../expressions.html#IsInf">sqlglot.expressions.IsInf</a>'>>, 'IS_NAN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#IsNan">sqlglot.expressions.IsNan</a>'>>, 'ISNAN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#IsNan">sqlglot.expressions.IsNan</a>'>>, 'J_S_O_N_ARRAY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONArray">sqlglot.expressions.JSONArray</a>'>>, 'J_S_O_N_ARRAY_AGG': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONArrayAgg">sqlglot.expressions.JSONArrayAgg</a>'>>, 'JSON_ARRAY_CONTAINS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONArrayContains">sqlglot.expressions.JSONArrayContains</a>'>>, 'JSONB_CONTAINS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONBContains">sqlglot.expressions.JSONBContains</a>'>>, 'JSONB_EXISTS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONBExists">sqlglot.expressions.JSONBExists</a>'>>, 'JSONB_EXTRACT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONBExtract">sqlglot.expressions.JSONBExtract</a>'>>, 'JSONB_EXTRACT_SCALAR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONBExtractScalar">sqlglot.expressions.JSONBExtractScalar</a>'>>, 'J_S_O_N_EXISTS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONExists">sqlglot.expressions.JSONExists</a>'>>, 'JSON_EXTRACT': <function build_extract_json_with_path.<locals>._builder>, 'J_S_O_N_EXTRACT_ARRAY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONExtractArray">sqlglot.expressions.JSONExtractArray</a>'>>, 'JSON_EXTRACT_SCALAR': <function build_extract_json_with_path.<locals>._builder>, 'JSON_FORMAT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONFormat">sqlglot.expressions.JSONFormat</a>'>>, 'J_S_O_N_OBJECT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONObject">sqlglot.expressions.JSONObject</a>'>>, 'J_S_O_N_OBJECT_AGG': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONObjectAgg">sqlglot.expressions.JSONObjectAgg</a>'>>, 'J_S_O_N_TABLE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONTable">sqlglot.expressions.JSONTable</a>'>>, 'J_S_O_N_VALUE_ARRAY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#JSONValueArray">sqlglot.expressions.JSONValueArray</a>'>>, 'LAG': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Lag">sqlglot.expressions.Lag</a>'>>, 'LAST': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Last">sqlglot.expressions.Last</a>'>>, 'LAST_DAY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#LastDay">sqlglot.expressions.LastDay</a>'>>, 'LAST_DAY_OF_MONTH': <bound method Func.from_arg_list of <class '<a href="../expressions.html#LastDay">sqlglot.expressions.LastDay</a>'>>, 'LAST_VALUE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#LastValue">sqlglot.expressions.LastValue</a>'>>, 'LEAD': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Lead">sqlglot.expressions.Lead</a>'>>, 'LEAST': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Least">sqlglot.expressions.Least</a>'>>, 'LEFT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Left">sqlglot.expressions.Left</a>'>>, 'LENGTH': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Length">sqlglot.expressions.Length</a>'>>, 'LEN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Length">sqlglot.expressions.Length</a>'>>, 'LEVENSHTEIN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Levenshtein">sqlglot.expressions.Levenshtein</a>'>>, 'LIST': <bound method Func.from_arg_list of <class '<a href="../expressions.html#List">sqlglot.expressions.List</a>'>>, 'LN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Ln">sqlglot.expressions.Ln</a>'>>, 'LOG': <function build_logarithm>, 'LOGICAL_AND': <bound method Func.from_arg_list of <class '<a href="../expressions.html#LogicalAnd">sqlglot.expressions.LogicalAnd</a>'>>, 'BOOL_AND': <bound method Func.from_arg_list of <class '<a href="../expressions.html#LogicalAnd">sqlglot.expressions.LogicalAnd</a>'>>, 'BOOLAND_AGG': <bound method Func.from_arg_list of <class '<a href="../expressions.html#LogicalAnd">sqlglot.expressions.LogicalAnd</a>'>>, 'LOGICAL_OR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#LogicalOr">sqlglot.expressions.LogicalOr</a>'>>, 'BOOL_OR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#LogicalOr">sqlglot.expressions.LogicalOr</a>'>>, 'BOOLOR_AGG': <bound method Func.from_arg_list of <class '<a href="../expressions.html#LogicalOr">sqlglot.expressions.LogicalOr</a>'>>, 'LOWER': <function build_lower>, 'LCASE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Lower">sqlglot.expressions.Lower</a>'>>, 'LOWER_HEX': <bound method Func.from_arg_list of <class '<a href="../expressions.html#LowerHex">sqlglot.expressions.LowerHex</a>'>>, 'MD5': <bound method Func.from_arg_list of <class '<a href="../expressions.html#MD5">sqlglot.expressions.MD5</a>'>>, 'MD5_DIGEST': <bound method Func.from_arg_list of <class '<a href="../expressions.html#MD5Digest">sqlglot.expressions.MD5Digest</a>'>>, 'MAKE_INTERVAL': <bound method Func.from_arg_list of <class '<a href="../expressions.html#MakeInterval">sqlglot.expressions.MakeInterval</a>'>>, 'MAP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Map">sqlglot.expressions.Map</a>'>>, 'MAP_FROM_ENTRIES': <bound method Func.from_arg_list of <class '<a href="../expressions.html#MapFromEntries">sqlglot.expressions.MapFromEntries</a>'>>, 'MATCH_AGAINST': <bound method Func.from_arg_list of <class '<a href="../expressions.html#MatchAgainst">sqlglot.expressions.MatchAgainst</a>'>>, 'MAX': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Max">sqlglot.expressions.Max</a>'>>, 'MEDIAN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Median">sqlglot.expressions.Median</a>'>>, 'MIN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Min">sqlglot.expressions.Min</a>'>>, 'MONTH': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Month">sqlglot.expressions.Month</a>'>>, 'MONTHS_BETWEEN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#MonthsBetween">sqlglot.expressions.MonthsBetween</a>'>>, 'NEXT_VALUE_FOR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#NextValueFor">sqlglot.expressions.NextValueFor</a>'>>, 'NORMALIZE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Normalize">sqlglot.expressions.Normalize</a>'>>, 'NTH_VALUE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#NthValue">sqlglot.expressions.NthValue</a>'>>, 'NULLIF': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Nullif">sqlglot.expressions.Nullif</a>'>>, 'NUMBER_TO_STR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#NumberToStr">sqlglot.expressions.NumberToStr</a>'>>, 'NVL2': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Nvl2">sqlglot.expressions.Nvl2</a>'>>, 'OBJECT_INSERT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ObjectInsert">sqlglot.expressions.ObjectInsert</a>'>>, 'OPEN_J_S_O_N': <bound method Func.from_arg_list of <class '<a href="../expressions.html#OpenJSON">sqlglot.expressions.OpenJSON</a>'>>, 'OVERLAY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Overlay">sqlglot.expressions.Overlay</a>'>>, 'PAD': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Pad">sqlglot.expressions.Pad</a>'>>, 'PARAMETERIZED_AGG': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ParameterizedAgg">sqlglot.expressions.ParameterizedAgg</a>'>>, 'PARSE_JSON': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ParseJSON">sqlglot.expressions.ParseJSON</a>'>>, 'JSON_PARSE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ParseJSON">sqlglot.expressions.ParseJSON</a>'>>, 'PERCENTILE_CONT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#PercentileCont">sqlglot.expressions.PercentileCont</a>'>>, 'PERCENTILE_DISC': <bound method Func.from_arg_list of <class '<a href="../expressions.html#PercentileDisc">sqlglot.expressions.PercentileDisc</a>'>>, 'POSEXPLODE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Posexplode">sqlglot.expressions.Posexplode</a>'>>, 'POSEXPLODE_OUTER': <bound method Func.from_arg_list of <class '<a href="../expressions.html#PosexplodeOuter">sqlglot.expressions.PosexplodeOuter</a>'>>, 'POWER': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Pow">sqlglot.expressions.Pow</a>'>>, 'POW': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Pow">sqlglot.expressions.Pow</a>'>>, 'PREDICT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Predict">sqlglot.expressions.Predict</a>'>>, 'QUANTILE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Quantile">sqlglot.expressions.Quantile</a>'>>, 'QUARTER': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Quarter">sqlglot.expressions.Quarter</a>'>>, 'RAND': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Rand">sqlglot.expressions.Rand</a>'>>, 'RANDOM': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Rand">sqlglot.expressions.Rand</a>'>>, 'RANDN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Randn">sqlglot.expressions.Randn</a>'>>, 'RANGE_N': <bound method Func.from_arg_list of <class '<a href="../expressions.html#RangeN">sqlglot.expressions.RangeN</a>'>>, 'READ_CSV': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ReadCSV">sqlglot.expressions.ReadCSV</a>'>>, 'REDUCE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Reduce">sqlglot.expressions.Reduce</a>'>>, 'REGEXP_EXTRACT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#RegexpExtract">sqlglot.expressions.RegexpExtract</a>'>>, 'REGEXP_EXTRACT_ALL': <bound method Func.from_arg_list of <class '<a href="../expressions.html#RegexpExtractAll">sqlglot.expressions.RegexpExtractAll</a>'>>, 'REGEXP_I_LIKE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#RegexpILike">sqlglot.expressions.RegexpILike</a>'>>, 'REGEXP_LIKE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#RegexpLike">sqlglot.expressions.RegexpLike</a>'>>, 'REGEXP_REPLACE': <function _build_regexp_replace>, 'REGEXP_SPLIT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#RegexpSplit">sqlglot.expressions.RegexpSplit</a>'>>, 'REPEAT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Repeat">sqlglot.expressions.Repeat</a>'>>, 'RIGHT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Right">sqlglot.expressions.Right</a>'>>, 'ROUND': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Round">sqlglot.expressions.Round</a>'>>, 'ROW_NUMBER': <bound method Func.from_arg_list of <class '<a href="../expressions.html#RowNumber">sqlglot.expressions.RowNumber</a>'>>, 'SHA': <bound method Func.from_arg_list of <class '<a href="../expressions.html#SHA">sqlglot.expressions.SHA</a>'>>, 'SHA1': <bound method Func.from_arg_list of <class '<a href="../expressions.html#SHA">sqlglot.expressions.SHA</a>'>>, 'SHA2': <bound method Func.from_arg_list of <class '<a href="../expressions.html#SHA2">sqlglot.expressions.SHA2</a>'>>, 'SAFE_DIVIDE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#SafeDivide">sqlglot.expressions.SafeDivide</a>'>>, 'SIGN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Sign">sqlglot.expressions.Sign</a>'>>, 'SIGNUM': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Sign">sqlglot.expressions.Sign</a>'>>, 'SORT_ARRAY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#SortArray">sqlglot.expressions.SortArray</a>'>>, 'SPLIT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Split">sqlglot.expressions.Split</a>'>>, 'SPLIT_PART': <bound method Func.from_arg_list of <class '<a href="../expressions.html#SplitPart">sqlglot.expressions.SplitPart</a>'>>, 'SQRT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Sqrt">sqlglot.expressions.Sqrt</a>'>>, 'STANDARD_HASH': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StandardHash">sqlglot.expressions.StandardHash</a>'>>, 'STAR_MAP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StarMap">sqlglot.expressions.StarMap</a>'>>, 'STARTS_WITH': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StartsWith">sqlglot.expressions.StartsWith</a>'>>, 'STARTSWITH': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StartsWith">sqlglot.expressions.StartsWith</a>'>>, 'STDDEV': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Stddev">sqlglot.expressions.Stddev</a>'>>, 'STDEV': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Stddev">sqlglot.expressions.Stddev</a>'>>, 'STDDEV_POP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StddevPop">sqlglot.expressions.StddevPop</a>'>>, 'STDDEV_SAMP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StddevSamp">sqlglot.expressions.StddevSamp</a>'>>, 'STR_POSITION': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StrPosition">sqlglot.expressions.StrPosition</a>'>>, 'STR_TO_DATE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StrToDate">sqlglot.expressions.StrToDate</a>'>>, 'STR_TO_MAP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StrToMap">sqlglot.expressions.StrToMap</a>'>>, 'STR_TO_TIME': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StrToTime">sqlglot.expressions.StrToTime</a>'>>, 'STR_TO_UNIX': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StrToUnix">sqlglot.expressions.StrToUnix</a>'>>, 'STRING': <bound method Func.from_arg_list of <class '<a href="../expressions.html#String">sqlglot.expressions.String</a>'>>, 'STRING_TO_ARRAY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StringToArray">sqlglot.expressions.StringToArray</a>'>>, 'SPLIT_BY_STRING': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StringToArray">sqlglot.expressions.StringToArray</a>'>>, 'STRUCT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Struct">sqlglot.expressions.Struct</a>'>>, 'STRUCT_EXTRACT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#StructExtract">sqlglot.expressions.StructExtract</a>'>>, 'STUFF': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Stuff">sqlglot.expressions.Stuff</a>'>>, 'INSERT': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Stuff">sqlglot.expressions.Stuff</a>'>>, 'SUBSTRING': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Substring">sqlglot.expressions.Substring</a>'>>, 'SUBSTR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Substring">sqlglot.expressions.Substring</a>'>>, 'SUM': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Sum">sqlglot.expressions.Sum</a>'>>, 'TIME': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Time">sqlglot.expressions.Time</a>'>>, 'TIME_ADD': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimeAdd">sqlglot.expressions.TimeAdd</a>'>>, 'TIME_DIFF': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimeDiff">sqlglot.expressions.TimeDiff</a>'>>, 'TIME_FROM_PARTS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimeFromParts">sqlglot.expressions.TimeFromParts</a>'>>, 'TIMEFROMPARTS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimeFromParts">sqlglot.expressions.TimeFromParts</a>'>>, 'TIME_STR_TO_DATE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimeStrToDate">sqlglot.expressions.TimeStrToDate</a>'>>, 'TIME_STR_TO_TIME': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimeStrToTime">sqlglot.expressions.TimeStrToTime</a>'>>, 'TIME_STR_TO_UNIX': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimeStrToUnix">sqlglot.expressions.TimeStrToUnix</a>'>>, 'TIME_SUB': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimeSub">sqlglot.expressions.TimeSub</a>'>>, 'TIME_TO_STR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimeToStr">sqlglot.expressions.TimeToStr</a>'>>, 'TIME_TO_TIME_STR': <function Parser.<lambda>>, 'TIME_TO_UNIX': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimeToUnix">sqlglot.expressions.TimeToUnix</a>'>>, 'TIME_TRUNC': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimeTrunc">sqlglot.expressions.TimeTrunc</a>'>>, 'TIMESTAMP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Timestamp">sqlglot.expressions.Timestamp</a>'>>, 'TIMESTAMP_ADD': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimestampAdd">sqlglot.expressions.TimestampAdd</a>'>>, 'TIMESTAMPDIFF': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimestampDiff">sqlglot.expressions.TimestampDiff</a>'>>, 'TIMESTAMP_DIFF': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimestampDiff">sqlglot.expressions.TimestampDiff</a>'>>, 'TIMESTAMP_FROM_PARTS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimestampFromParts">sqlglot.expressions.TimestampFromParts</a>'>>, 'TIMESTAMPFROMPARTS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimestampFromParts">sqlglot.expressions.TimestampFromParts</a>'>>, 'TIMESTAMP_SUB': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimestampSub">sqlglot.expressions.TimestampSub</a>'>>, 'TIMESTAMP_TRUNC': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimestampTrunc">sqlglot.expressions.TimestampTrunc</a>'>>, 'TO_ARRAY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ToArray">sqlglot.expressions.ToArray</a>'>>, 'TO_BASE64': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ToBase64">sqlglot.expressions.ToBase64</a>'>>, 'TO_CHAR': <function build_formatted_time.<locals>._builder>, 'TO_DAYS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ToDays">sqlglot.expressions.ToDays</a>'>>, 'TO_DOUBLE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ToDouble">sqlglot.expressions.ToDouble</a>'>>, 'TO_MAP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ToMap">sqlglot.expressions.ToMap</a>'>>, 'TO_NUMBER': <bound method Func.from_arg_list of <class '<a href="../expressions.html#ToNumber">sqlglot.expressions.ToNumber</a>'>>, 'TRANSFORM': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Transform">sqlglot.expressions.Transform</a>'>>, 'TRIM': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Trim">sqlglot.expressions.Trim</a>'>>, 'TRY': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Try">sqlglot.expressions.Try</a>'>>, 'TRY_CAST': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TryCast">sqlglot.expressions.TryCast</a>'>>, 'TS_OR_DI_TO_DI': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TsOrDiToDi">sqlglot.expressions.TsOrDiToDi</a>'>>, 'TS_OR_DS_ADD': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TsOrDsAdd">sqlglot.expressions.TsOrDsAdd</a>'>>, 'TS_OR_DS_DIFF': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TsOrDsDiff">sqlglot.expressions.TsOrDsDiff</a>'>>, 'TS_OR_DS_TO_DATE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TsOrDsToDate">sqlglot.expressions.TsOrDsToDate</a>'>>, 'TS_OR_DS_TO_DATE_STR': <function Parser.<lambda>>, 'TS_OR_DS_TO_DATETIME': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TsOrDsToDatetime">sqlglot.expressions.TsOrDsToDatetime</a>'>>, 'TS_OR_DS_TO_TIME': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TsOrDsToTime">sqlglot.expressions.TsOrDsToTime</a>'>>, 'TS_OR_DS_TO_TIMESTAMP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TsOrDsToTimestamp">sqlglot.expressions.TsOrDsToTimestamp</a>'>>, 'UNHEX': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Unhex">sqlglot.expressions.Unhex</a>'>>, 'UNIX_DATE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#UnixDate">sqlglot.expressions.UnixDate</a>'>>, 'UNIX_SECONDS': <bound method Func.from_arg_list of <class '<a href="../expressions.html#UnixSeconds">sqlglot.expressions.UnixSeconds</a>'>>, 'UNIX_TO_STR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#UnixToStr">sqlglot.expressions.UnixToStr</a>'>>, 'UNIX_TO_TIME': <bound method Func.from_arg_list of <class '<a href="../expressions.html#UnixToTime">sqlglot.expressions.UnixToTime</a>'>>, 'UNIX_TO_TIME_STR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#UnixToTimeStr">sqlglot.expressions.UnixToTimeStr</a>'>>, 'UNNEST': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Explode">sqlglot.expressions.Explode</a>'>>, 'UPPER': <function build_upper>, 'UCASE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Upper">sqlglot.expressions.Upper</a>'>>, 'UUID': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Uuid">sqlglot.expressions.Uuid</a>'>>, 'GEN_RANDOM_UUID': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Uuid">sqlglot.expressions.Uuid</a>'>>, 'GENERATE_UUID': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Uuid">sqlglot.expressions.Uuid</a>'>>, 'UUID_STRING': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Uuid">sqlglot.expressions.Uuid</a>'>>, 'VAR_MAP': <function build_var_map>, 'VARIANCE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Variance">sqlglot.expressions.Variance</a>'>>, 'VARIANCE_SAMP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Variance">sqlglot.expressions.Variance</a>'>>, 'VAR_SAMP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Variance">sqlglot.expressions.Variance</a>'>>, 'VARIANCE_POP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#VariancePop">sqlglot.expressions.VariancePop</a>'>>, 'VAR_POP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#VariancePop">sqlglot.expressions.VariancePop</a>'>>, 'WEEK': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Week">sqlglot.expressions.Week</a>'>>, 'WEEK_OF_YEAR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#WeekOfYear">sqlglot.expressions.WeekOfYear</a>'>>, 'WEEKOFYEAR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#WeekOfYear">sqlglot.expressions.WeekOfYear</a>'>>, 'WHEN': <bound method Func.from_arg_list of <class '<a href="../expressions.html#When">sqlglot.expressions.When</a>'>>, 'X_M_L_TABLE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#XMLTable">sqlglot.expressions.XMLTable</a>'>>, 'XOR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Xor">sqlglot.expressions.Xor</a>'>>, 'YEAR': <bound method Func.from_arg_list of <class '<a href="../expressions.html#Year">sqlglot.expressions.Year</a>'>>, 'ARRAYAGG': <function Parser.<lambda>>, 'GLOB': <function Parser.<lambda>>, 'INSTR': <function Parser.<lambda>>, 'JSON_EXTRACT_PATH_TEXT': <function build_json_extract_path.<locals>._builder>, 'LIKE': <function build_like>, 'LOG2': <function Parser.<lambda>>, 'LOG10': <function Parser.<lambda>>, 'LPAD': <function Parser.<lambda>>, 'LEFTPAD': <function Parser.<lambda>>, 'LTRIM': <function Parser.<lambda>>, 'MOD': <function build_mod>, 'RIGHTPAD': <function Parser.<lambda>>, 'RPAD': <function Parser.<lambda>>, 'RTRIM': <function Parser.<lambda>>, 'SCOPE_RESOLUTION': <function Parser.<lambda>>, 'TO_HEX': <function build_hex>, 'DIV': <function Postgres.Parser.<lambda>>, 'JSON_EXTRACT_PATH': <function build_json_extract_path.<locals>._builder>, 'MAKE_TIME': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimeFromParts">sqlglot.expressions.TimeFromParts</a>'>>, 'MAKE_TIMESTAMP': <bound method Func.from_arg_list of <class '<a href="../expressions.html#TimestampFromParts">sqlglot.expressions.TimestampFromParts</a>'>>, 'NOW': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CurrentTimestamp">sqlglot.expressions.CurrentTimestamp</a>'>>, 'TO_DATE': <function build_formatted_time.<locals>._builder>, 'TO_TIMESTAMP': <function _build_to_timestamp>, 'SHA256': <function Postgres.Parser.<lambda>>, 'SHA384': <function Postgres.Parser.<lambda>>, 'SHA512': <function Postgres.Parser.<lambda>>, 'LEVENSHTEIN_LESS_EQUAL': <function _build_levenshtein_less_equal>, 'DATEADD': <function _build_date_delta.<locals>._builder>, 'GETDATE': <bound method Func.from_arg_list of <class '<a href="../expressions.html#CurrentTimestamp">sqlglot.expressions.CurrentTimestamp</a>'>>, 'LISTAGG': <bound method Func.from_arg_list of <class '<a href="../expressions.html#GroupConcat">sqlglot.expressions.GroupConcat</a>'>>, 'SPLIT_TO_ARRAY': <function <a href="#Redshift.Parser">Redshift.Parser</a>.<lambda>>, 'STRTOL': <bound method Func.from_arg_list of <class '<a href="../expressions.html#FromBase">sqlglot.expressions.FromBase</a>'>>}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Parser.FUNCTIONS"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Parser.NO_PAREN_FUNCTION_PARSERS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">NO_PAREN_FUNCTION_PARSERS</span> =
|
|
<input id="Redshift.Parser.NO_PAREN_FUNCTION_PARSERS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.Parser.NO_PAREN_FUNCTION_PARSERS-view-value"></label><span class="default_value">{'ANY': <function Parser.<lambda>>, 'CASE': <function Parser.<lambda>>, 'CONNECT_BY_ROOT': <function Parser.<lambda>>, 'IF': <function Parser.<lambda>>, 'NEXT': <function Parser.<lambda>>, 'APPROXIMATE': <function <a href="#Redshift.Parser">Redshift.Parser</a>.<lambda>>, 'SYSDATE': <function <a href="#Redshift.Parser">Redshift.Parser</a>.<lambda>>}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Parser.NO_PAREN_FUNCTION_PARSERS"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Parser.SUPPORTS_IMPLICIT_UNNEST" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">SUPPORTS_IMPLICIT_UNNEST</span> =
|
|
<span class="default_value">True</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Parser.SUPPORTS_IMPLICIT_UNNEST"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Parser.ID_VAR_TOKENS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">ID_VAR_TOKENS</span> =
|
|
<input id="Redshift.Parser.ID_VAR_TOKENS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.Parser.ID_VAR_TOKENS-view-value"></label><span class="default_value">{<TokenType.DECIMAL128: 'DECIMAL128'>, <TokenType.PARTITION: 'PARTITION'>, <TokenType.NEXT: 'NEXT'>, <TokenType.OFFSET: 'OFFSET'>, <TokenType.DECIMAL: 'DECIMAL'>, <TokenType.RIGHT: 'RIGHT'>, <TokenType.UNIQUEIDENTIFIER: 'UNIQUEIDENTIFIER'>, <TokenType.SCHEMA: 'SCHEMA'>, <TokenType.TABLE: 'TABLE'>, <TokenType.FULL: 'FULL'>, <TokenType.OBJECT: 'OBJECT'>, <TokenType.UDECIMAL: 'UDECIMAL'>, <TokenType.CURRENT_DATETIME: 'CURRENT_DATETIME'>, <TokenType.VIEW: 'VIEW'>, <TokenType.TDIGEST: 'TDIGEST'>, <TokenType.EXISTS: 'EXISTS'>, <TokenType.LONGBLOB: 'LONGBLOB'>, <TokenType.BINARY: 'BINARY'>, <TokenType.MULTILINESTRING: 'MULTILINESTRING'>, <TokenType.IMAGE: 'IMAGE'>, <TokenType.CURRENT_TIME: 'CURRENT_TIME'>, <TokenType.RENAME: 'RENAME'>, <TokenType.DECIMAL64: 'DECIMAL64'>, <TokenType.OPERATOR: 'OPERATOR'>, <TokenType.FIXEDSTRING: 'FIXEDSTRING'>, <TokenType.MONEY: 'MONEY'>, <TokenType.UNKNOWN: 'UNKNOWN'>, <TokenType.BPCHAR: 'BPCHAR'>, <TokenType.TSTZRANGE: 'TSTZRANGE'>, <TokenType.STRAIGHT_JOIN: 'STRAIGHT_JOIN'>, <TokenType.TSMULTIRANGE: 'TSMULTIRANGE'>, <TokenType.FALSE: 'FALSE'>, <TokenType.INT4MULTIRANGE: 'INT4MULTIRANGE'>, <TokenType.DESC: 'DESC'>, <TokenType.JSONB: 'JSONB'>, <TokenType.CUBE: 'CUBE'>, <TokenType.NAME: 'NAME'>, <TokenType.TRUE: 'TRUE'>, <TokenType.DATERANGE: 'DATERANGE'>, <TokenType.STREAMLIT: 'STREAMLIT'>, <TokenType.USE: 'USE'>, <TokenType.DEFAULT: 'DEFAULT'>, <TokenType.REPLACE: 'REPLACE'>, <TokenType.INT4RANGE: 'INT4RANGE'>, <TokenType.IPADDRESS: 'IPADDRESS'>, <TokenType.END: 'END'>, <TokenType.PSEUDO_TYPE: 'PSEUDO_TYPE'>, <TokenType.DATETIME64: 'DATETIME64'>, <TokenType.BOOLEAN: 'BOOLEAN'>, <TokenType.INDEX: 'INDEX'>, <TokenType.FOREIGN_KEY: 'FOREIGN_KEY'>, <TokenType.NULL: 'NULL'>, <TokenType.REFERENCES: 'REFERENCES'>, <TokenType.DIV: 'DIV'>, <TokenType.BIGSERIAL: 'BIGSERIAL'>, <TokenType.NCHAR: 'NCHAR'>, <TokenType.CONSTRAINT: 'CONSTRAINT'>, <TokenType.INT8RANGE: 'INT8RANGE'>, <TokenType.COMMENT: 'COMMENT'>, <TokenType.ANY: 'ANY'>, <TokenType.CHAR: 'CHAR'>, <TokenType.TINYBLOB: 'TINYBLOB'>, <TokenType.SMALLSERIAL: 'SMALLSERIAL'>, <TokenType.COLUMN: 'COLUMN'>, <TokenType.KEEP: 'KEEP'>, <TokenType.TIMESTAMPTZ: 'TIMESTAMPTZ'>, <TokenType.NUMMULTIRANGE: 'NUMMULTIRANGE'>, <TokenType.AGGREGATEFUNCTION: 'AGGREGATEFUNCTION'>, <TokenType.UNIQUE: 'UNIQUE'>, <TokenType.UNPIVOT: 'UNPIVOT'>, <TokenType.DOUBLE: 'DOUBLE'>, <TokenType.LOWCARDINALITY: 'LOWCARDINALITY'>, <TokenType.INTERVAL: 'INTERVAL'>, <TokenType.ROW: 'ROW'>, <TokenType.SEMI: 'SEMI'>, <TokenType.DELETE: 'DELETE'>, <TokenType.MAP: 'MAP'>, <TokenType.WAREHOUSE: 'WAREHOUSE'>, <TokenType.PRAGMA: 'PRAGMA'>, <TokenType.TIMESTAMPNTZ: 'TIMESTAMPNTZ'>, <TokenType.DATEMULTIRANGE: 'DATEMULTIRANGE'>, <TokenType.CURRENT_USER: 'CURRENT_USER'>, <TokenType.SHOW: 'SHOW'>, <TokenType.ARRAY: 'ARRAY'>, <TokenType.GEOMETRY: 'GEOMETRY'>, <TokenType.APPLY: 'APPLY'>, <TokenType.VECTOR: 'VECTOR'>, <TokenType.EXECUTE: 'EXECUTE'>, <TokenType.KILL: 'KILL'>, <TokenType.SERIAL: 'SERIAL'>, <TokenType.ROWS: 'ROWS'>, <TokenType.TAG: 'TAG'>, <TokenType.UINT256: 'UINT256'>, <TokenType.MULTIPOLYGON: 'MULTIPOLYGON'>, <TokenType.CASE: 'CASE'>, <TokenType.ENUM: 'ENUM'>, <TokenType.BIT: 'BIT'>, <TokenType.NUMRANGE: 'NUMRANGE'>, <TokenType.OVERWRITE: 'OVERWRITE'>, <TokenType.OVERLAPS: 'OVERLAPS'>, <TokenType.DECIMAL32: 'DECIMAL32'>, <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, <TokenType.INET: 'INET'>, <TokenType.DICTIONARY: 'DICTIONARY'>, <TokenType.MODEL: 'MODEL'>, <TokenType.SUPER: 'SUPER'>, <TokenType.UINT: 'UINT'>, <TokenType.TEXT: 'TEXT'>, <TokenType.VARBINARY: 'VARBINARY'>, <TokenType.SMALLMONEY: 'SMALLMONEY'>, <TokenType.VOLATILE: 'VOLATILE'>, <TokenType.LIST: 'LIST'>, <TokenType.IPV4: 'IPV4'>, <TokenType.COPY: 'COPY'>, <TokenType.TEMPORARY: 'TEMPORARY'>, <TokenType.XML: 'XML'>, <TokenType.WINDOW: 'WINDOW'>, <TokenType.ROLLUP: 'ROLLUP'>, <TokenType.COMMAND: 'COMMAND'>, <TokenType.FILTER: 'FILTER'>, <TokenType.COLLATE: 'COLLATE'>, <TokenType.SEQUENCE: 'SEQUENCE'>, <TokenType.TIMESTAMP_S: 'TIMESTAMP_S'>, <TokenType.STORAGE_INTEGRATION: 'STORAGE_INTEGRATION'>, <TokenType.SETTINGS: 'SETTINGS'>, <TokenType.SMALLINT: 'SMALLINT'>, <TokenType.ANTI: 'ANTI'>, <TokenType.MERGE: 'MERGE'>, <TokenType.ORDINALITY: 'ORDINALITY'>, <TokenType.AUTO_INCREMENT: 'AUTO_INCREMENT'>, <TokenType.BEGIN: 'BEGIN'>, <TokenType.DATETIME: 'DATETIME'>, <TokenType.PROCEDURE: 'PROCEDURE'>, <TokenType.MEDIUMINT: 'MEDIUMINT'>, <TokenType.NATURAL: 'NATURAL'>, <TokenType.USMALLINT: 'USMALLINT'>, <TokenType.ENUM16: 'ENUM16'>, <TokenType.RANGE: 'RANGE'>, <TokenType.INT: 'INT'>, <TokenType.FIRST: 'FIRST'>, <TokenType.TINYTEXT: 'TINYTEXT'>, <TokenType.TSTZMULTIRANGE: 'TSTZMULTIRANGE'>, <TokenType.ASOF: 'ASOF'>, <TokenType.SET: 'SET'>, <TokenType.YEAR: 'YEAR'>, <TokenType.DECIMAL256: 'DECIMAL256'>, <TokenType.SOME: 'SOME'>, <TokenType.TOP: 'TOP'>, <TokenType.CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP'>, <TokenType.NVARCHAR: 'NVARCHAR'>, <TokenType.VARCHAR: 'VARCHAR'>, <TokenType.UPDATE: 'UPDATE'>, <TokenType.PIVOT: 'PIVOT'>, <TokenType.TINYINT: 'TINYINT'>, <TokenType.BIGINT: 'BIGINT'>, <TokenType.IPV6: 'IPV6'>, <TokenType.MEDIUMTEXT: 'MEDIUMTEXT'>, <TokenType.NULLABLE: 'NULLABLE'>, <TokenType.ROWVERSION: 'ROWVERSION'>, <TokenType.POLYGON: 'POLYGON'>, <TokenType.PERCENT: 'PERCENT'>, <TokenType.IDENTIFIER: 'IDENTIFIER'>, <TokenType.TIMESTAMP_MS: 'TIMESTAMP_MS'>, <TokenType.FLOAT: 'FLOAT'>, <TokenType.RECURSIVE: 'RECURSIVE'>, <TokenType.ENUM8: 'ENUM8'>, <TokenType.TIMESTAMP: 'TIMESTAMP'>, <TokenType.FINAL: 'FINAL'>, <TokenType.VAR: 'VAR'>, <TokenType.USERDEFINED: 'USERDEFINED'>, <TokenType.DATABASE: 'DATABASE'>, <TokenType.ISNULL: 'ISNULL'>, <TokenType.DATE: 'DATE'>, <TokenType.IS: 'IS'>, <TokenType.UTINYINT: 'UTINYINT'>, <TokenType.BIGDECIMAL: 'BIGDECIMAL'>, <TokenType.ASC: 'ASC'>, <TokenType.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>, <TokenType.UNNEST: 'UNNEST'>, <TokenType.DESCRIBE: 'DESCRIBE'>, <TokenType.UUID: 'UUID'>, <TokenType.TIMESTAMP_NS: 'TIMESTAMP_NS'>, <TokenType.TIMETZ: 'TIMETZ'>, <TokenType.LEFT: 'LEFT'>, <TokenType.FORMAT: 'FORMAT'>, <TokenType.GEOGRAPHY: 'GEOGRAPHY'>, <TokenType.LINESTRING: 'LINESTRING'>, <TokenType.FUNCTION: 'FUNCTION'>, <TokenType.TIME: 'TIME'>, <TokenType.JSON: 'JSON'>, <TokenType.IPPREFIX: 'IPPREFIX'>, <TokenType.CURRENT_DATE: 'CURRENT_DATE'>, <TokenType.COMMIT: 'COMMIT'>, <TokenType.TRUNCATE: 'TRUNCATE'>, <TokenType.UINT128: 'UINT128'>, <TokenType.POINT: 'POINT'>, <TokenType.INT128: 'INT128'>, <TokenType.UMEDIUMINT: 'UMEDIUMINT'>, <TokenType.HSTORE: 'HSTORE'>, <TokenType.VARIANT: 'VARIANT'>, <TokenType.CACHE: 'CACHE'>, <TokenType.LOAD: 'LOAD'>, <TokenType.REFRESH: 'REFRESH'>, <TokenType.HLLSKETCH: 'HLLSKETCH'>, <TokenType.MEDIUMBLOB: 'MEDIUMBLOB'>, <TokenType.DATE32: 'DATE32'>, <TokenType.ESCAPE: 'ESCAPE'>, <TokenType.SIMPLEAGGREGATEFUNCTION: 'SIMPLEAGGREGATEFUNCTION'>, <TokenType.RING: 'RING'>, <TokenType.NESTED: 'NESTED'>, <TokenType.INT8MULTIRANGE: 'INT8MULTIRANGE'>, <TokenType.UBIGINT: 'UBIGINT'>, <TokenType.STRUCT: 'STRUCT'>, <TokenType.ALL: 'ALL'>, <TokenType.TSRANGE: 'TSRANGE'>, <TokenType.LONGTEXT: 'LONGTEXT'>, <TokenType.INT256: 'INT256'>}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Parser.ID_VAR_TOKENS"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Parser.TABLE_ALIAS_TOKENS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">TABLE_ALIAS_TOKENS</span> =
|
|
<input id="Redshift.Parser.TABLE_ALIAS_TOKENS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.Parser.TABLE_ALIAS_TOKENS-view-value"></label><span class="default_value">{<TokenType.DECIMAL128: 'DECIMAL128'>, <TokenType.PARTITION: 'PARTITION'>, <TokenType.NEXT: 'NEXT'>, <TokenType.DECIMAL: 'DECIMAL'>, <TokenType.UNIQUEIDENTIFIER: 'UNIQUEIDENTIFIER'>, <TokenType.SCHEMA: 'SCHEMA'>, <TokenType.TABLE: 'TABLE'>, <TokenType.OBJECT: 'OBJECT'>, <TokenType.UDECIMAL: 'UDECIMAL'>, <TokenType.CURRENT_DATETIME: 'CURRENT_DATETIME'>, <TokenType.VIEW: 'VIEW'>, <TokenType.TDIGEST: 'TDIGEST'>, <TokenType.EXISTS: 'EXISTS'>, <TokenType.LONGBLOB: 'LONGBLOB'>, <TokenType.BINARY: 'BINARY'>, <TokenType.MULTILINESTRING: 'MULTILINESTRING'>, <TokenType.IMAGE: 'IMAGE'>, <TokenType.CURRENT_TIME: 'CURRENT_TIME'>, <TokenType.RENAME: 'RENAME'>, <TokenType.DECIMAL64: 'DECIMAL64'>, <TokenType.OPERATOR: 'OPERATOR'>, <TokenType.FIXEDSTRING: 'FIXEDSTRING'>, <TokenType.MONEY: 'MONEY'>, <TokenType.UNKNOWN: 'UNKNOWN'>, <TokenType.BPCHAR: 'BPCHAR'>, <TokenType.TSTZRANGE: 'TSTZRANGE'>, <TokenType.STRAIGHT_JOIN: 'STRAIGHT_JOIN'>, <TokenType.TSMULTIRANGE: 'TSMULTIRANGE'>, <TokenType.INT4MULTIRANGE: 'INT4MULTIRANGE'>, <TokenType.DESC: 'DESC'>, <TokenType.JSONB: 'JSONB'>, <TokenType.CUBE: 'CUBE'>, <TokenType.NAME: 'NAME'>, <TokenType.TRUE: 'TRUE'>, <TokenType.DATERANGE: 'DATERANGE'>, <TokenType.STREAMLIT: 'STREAMLIT'>, <TokenType.USE: 'USE'>, <TokenType.DEFAULT: 'DEFAULT'>, <TokenType.REPLACE: 'REPLACE'>, <TokenType.INT4RANGE: 'INT4RANGE'>, <TokenType.IPADDRESS: 'IPADDRESS'>, <TokenType.END: 'END'>, <TokenType.PSEUDO_TYPE: 'PSEUDO_TYPE'>, <TokenType.DATETIME64: 'DATETIME64'>, <TokenType.BOOLEAN: 'BOOLEAN'>, <TokenType.INDEX: 'INDEX'>, <TokenType.FOREIGN_KEY: 'FOREIGN_KEY'>, <TokenType.NULL: 'NULL'>, <TokenType.REFERENCES: 'REFERENCES'>, <TokenType.DIV: 'DIV'>, <TokenType.BIGSERIAL: 'BIGSERIAL'>, <TokenType.NCHAR: 'NCHAR'>, <TokenType.CONSTRAINT: 'CONSTRAINT'>, <TokenType.INT8RANGE: 'INT8RANGE'>, <TokenType.COMMENT: 'COMMENT'>, <TokenType.ANY: 'ANY'>, <TokenType.CHAR: 'CHAR'>, <TokenType.TINYBLOB: 'TINYBLOB'>, <TokenType.SMALLSERIAL: 'SMALLSERIAL'>, <TokenType.COLUMN: 'COLUMN'>, <TokenType.KEEP: 'KEEP'>, <TokenType.TIMESTAMPTZ: 'TIMESTAMPTZ'>, <TokenType.TSRANGE: 'TSRANGE'>, <TokenType.NUMMULTIRANGE: 'NUMMULTIRANGE'>, <TokenType.AGGREGATEFUNCTION: 'AGGREGATEFUNCTION'>, <TokenType.UNIQUE: 'UNIQUE'>, <TokenType.UNPIVOT: 'UNPIVOT'>, <TokenType.DOUBLE: 'DOUBLE'>, <TokenType.LOWCARDINALITY: 'LOWCARDINALITY'>, <TokenType.INTERVAL: 'INTERVAL'>, <TokenType.ROW: 'ROW'>, <TokenType.DELETE: 'DELETE'>, <TokenType.MAP: 'MAP'>, <TokenType.WAREHOUSE: 'WAREHOUSE'>, <TokenType.PRAGMA: 'PRAGMA'>, <TokenType.TIMESTAMPNTZ: 'TIMESTAMPNTZ'>, <TokenType.DATEMULTIRANGE: 'DATEMULTIRANGE'>, <TokenType.CURRENT_USER: 'CURRENT_USER'>, <TokenType.SHOW: 'SHOW'>, <TokenType.ARRAY: 'ARRAY'>, <TokenType.INT256: 'INT256'>, <TokenType.GEOMETRY: 'GEOMETRY'>, <TokenType.VECTOR: 'VECTOR'>, <TokenType.EXECUTE: 'EXECUTE'>, <TokenType.KILL: 'KILL'>, <TokenType.SERIAL: 'SERIAL'>, <TokenType.ROWS: 'ROWS'>, <TokenType.TAG: 'TAG'>, <TokenType.UINT256: 'UINT256'>, <TokenType.MULTIPOLYGON: 'MULTIPOLYGON'>, <TokenType.CASE: 'CASE'>, <TokenType.ENUM: 'ENUM'>, <TokenType.BIT: 'BIT'>, <TokenType.NUMRANGE: 'NUMRANGE'>, <TokenType.OVERWRITE: 'OVERWRITE'>, <TokenType.OVERLAPS: 'OVERLAPS'>, <TokenType.DECIMAL32: 'DECIMAL32'>, <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, <TokenType.INET: 'INET'>, <TokenType.DICTIONARY: 'DICTIONARY'>, <TokenType.MODEL: 'MODEL'>, <TokenType.SUPER: 'SUPER'>, <TokenType.UINT: 'UINT'>, <TokenType.TEXT: 'TEXT'>, <TokenType.VARBINARY: 'VARBINARY'>, <TokenType.SMALLMONEY: 'SMALLMONEY'>, <TokenType.VOLATILE: 'VOLATILE'>, <TokenType.LIST: 'LIST'>, <TokenType.IPV4: 'IPV4'>, <TokenType.COPY: 'COPY'>, <TokenType.TEMPORARY: 'TEMPORARY'>, <TokenType.XML: 'XML'>, <TokenType.ROLLUP: 'ROLLUP'>, <TokenType.COMMAND: 'COMMAND'>, <TokenType.FILTER: 'FILTER'>, <TokenType.COLLATE: 'COLLATE'>, <TokenType.SEQUENCE: 'SEQUENCE'>, <TokenType.TIMESTAMP_S: 'TIMESTAMP_S'>, <TokenType.STORAGE_INTEGRATION: 'STORAGE_INTEGRATION'>, <TokenType.SETTINGS: 'SETTINGS'>, <TokenType.SMALLINT: 'SMALLINT'>, <TokenType.MERGE: 'MERGE'>, <TokenType.ORDINALITY: 'ORDINALITY'>, <TokenType.AUTO_INCREMENT: 'AUTO_INCREMENT'>, <TokenType.BEGIN: 'BEGIN'>, <TokenType.DATETIME: 'DATETIME'>, <TokenType.PROCEDURE: 'PROCEDURE'>, <TokenType.MEDIUMINT: 'MEDIUMINT'>, <TokenType.USMALLINT: 'USMALLINT'>, <TokenType.ENUM16: 'ENUM16'>, <TokenType.RANGE: 'RANGE'>, <TokenType.INT: 'INT'>, <TokenType.FIRST: 'FIRST'>, <TokenType.TINYTEXT: 'TINYTEXT'>, <TokenType.TSTZMULTIRANGE: 'TSTZMULTIRANGE'>, <TokenType.YEAR: 'YEAR'>, <TokenType.SET: 'SET'>, <TokenType.DECIMAL256: 'DECIMAL256'>, <TokenType.SOME: 'SOME'>, <TokenType.TOP: 'TOP'>, <TokenType.CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP'>, <TokenType.NVARCHAR: 'NVARCHAR'>, <TokenType.VARCHAR: 'VARCHAR'>, <TokenType.UPDATE: 'UPDATE'>, <TokenType.PIVOT: 'PIVOT'>, <TokenType.TINYINT: 'TINYINT'>, <TokenType.BIGINT: 'BIGINT'>, <TokenType.IPV6: 'IPV6'>, <TokenType.MEDIUMTEXT: 'MEDIUMTEXT'>, <TokenType.NULLABLE: 'NULLABLE'>, <TokenType.ROWVERSION: 'ROWVERSION'>, <TokenType.POLYGON: 'POLYGON'>, <TokenType.PERCENT: 'PERCENT'>, <TokenType.IDENTIFIER: 'IDENTIFIER'>, <TokenType.TIMESTAMP_MS: 'TIMESTAMP_MS'>, <TokenType.FLOAT: 'FLOAT'>, <TokenType.RECURSIVE: 'RECURSIVE'>, <TokenType.ENUM8: 'ENUM8'>, <TokenType.TIMESTAMP: 'TIMESTAMP'>, <TokenType.FINAL: 'FINAL'>, <TokenType.VAR: 'VAR'>, <TokenType.USERDEFINED: 'USERDEFINED'>, <TokenType.DATABASE: 'DATABASE'>, <TokenType.ISNULL: 'ISNULL'>, <TokenType.DATE: 'DATE'>, <TokenType.IS: 'IS'>, <TokenType.UTINYINT: 'UTINYINT'>, <TokenType.BIGDECIMAL: 'BIGDECIMAL'>, <TokenType.ASC: 'ASC'>, <TokenType.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>, <TokenType.UNNEST: 'UNNEST'>, <TokenType.DESCRIBE: 'DESCRIBE'>, <TokenType.UUID: 'UUID'>, <TokenType.TIMESTAMP_NS: 'TIMESTAMP_NS'>, <TokenType.TIMETZ: 'TIMETZ'>, <TokenType.FORMAT: 'FORMAT'>, <TokenType.GEOGRAPHY: 'GEOGRAPHY'>, <TokenType.LINESTRING: 'LINESTRING'>, <TokenType.FUNCTION: 'FUNCTION'>, <TokenType.JSON: 'JSON'>, <TokenType.IPPREFIX: 'IPPREFIX'>, <TokenType.CURRENT_DATE: 'CURRENT_DATE'>, <TokenType.COMMIT: 'COMMIT'>, <TokenType.TRUNCATE: 'TRUNCATE'>, <TokenType.UINT128: 'UINT128'>, <TokenType.POINT: 'POINT'>, <TokenType.INT128: 'INT128'>, <TokenType.UMEDIUMINT: 'UMEDIUMINT'>, <TokenType.HSTORE: 'HSTORE'>, <TokenType.VARIANT: 'VARIANT'>, <TokenType.CACHE: 'CACHE'>, <TokenType.LOAD: 'LOAD'>, <TokenType.REFRESH: 'REFRESH'>, <TokenType.HLLSKETCH: 'HLLSKETCH'>, <TokenType.MEDIUMBLOB: 'MEDIUMBLOB'>, <TokenType.DATE32: 'DATE32'>, <TokenType.ESCAPE: 'ESCAPE'>, <TokenType.SIMPLEAGGREGATEFUNCTION: 'SIMPLEAGGREGATEFUNCTION'>, <TokenType.RING: 'RING'>, <TokenType.NESTED: 'NESTED'>, <TokenType.INT8MULTIRANGE: 'INT8MULTIRANGE'>, <TokenType.UBIGINT: 'UBIGINT'>, <TokenType.STRUCT: 'STRUCT'>, <TokenType.ALL: 'ALL'>, <TokenType.TIME: 'TIME'>, <TokenType.LONGTEXT: 'LONGTEXT'>, <TokenType.FALSE: 'FALSE'>}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Parser.TABLE_ALIAS_TOKENS"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Parser.SHOW_TRIE" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">SHOW_TRIE</span><span class="annotation">: Dict</span> =
|
|
<span class="default_value">{}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Parser.SHOW_TRIE"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Parser.SET_TRIE" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">SET_TRIE</span><span class="annotation">: Dict</span> =
|
|
<span class="default_value">{'GLOBAL': {0: True}, 'LOCAL': {0: True}, 'SESSION': {0: True}, 'TRANSACTION': {0: True}}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Parser.SET_TRIE"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="../parser.html#Parser">sqlglot.parser.Parser</a></dt>
|
|
<dd id="Redshift.Parser.__init__" class="function"><a href="../parser.html#Parser.__init__">Parser</a></dd>
|
|
<dd id="Redshift.Parser.NO_PAREN_FUNCTIONS" class="variable"><a href="../parser.html#Parser.NO_PAREN_FUNCTIONS">NO_PAREN_FUNCTIONS</a></dd>
|
|
<dd id="Redshift.Parser.STRUCT_TYPE_TOKENS" class="variable"><a href="../parser.html#Parser.STRUCT_TYPE_TOKENS">STRUCT_TYPE_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.NESTED_TYPE_TOKENS" class="variable"><a href="../parser.html#Parser.NESTED_TYPE_TOKENS">NESTED_TYPE_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.ENUM_TYPE_TOKENS" class="variable"><a href="../parser.html#Parser.ENUM_TYPE_TOKENS">ENUM_TYPE_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.AGGREGATE_TYPE_TOKENS" class="variable"><a href="../parser.html#Parser.AGGREGATE_TYPE_TOKENS">AGGREGATE_TYPE_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.TYPE_TOKENS" class="variable"><a href="../parser.html#Parser.TYPE_TOKENS">TYPE_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.SIGNED_TO_UNSIGNED_TYPE_TOKEN" class="variable"><a href="../parser.html#Parser.SIGNED_TO_UNSIGNED_TYPE_TOKEN">SIGNED_TO_UNSIGNED_TYPE_TOKEN</a></dd>
|
|
<dd id="Redshift.Parser.SUBQUERY_PREDICATES" class="variable"><a href="../parser.html#Parser.SUBQUERY_PREDICATES">SUBQUERY_PREDICATES</a></dd>
|
|
<dd id="Redshift.Parser.RESERVED_TOKENS" class="variable"><a href="../parser.html#Parser.RESERVED_TOKENS">RESERVED_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.DB_CREATABLES" class="variable"><a href="../parser.html#Parser.DB_CREATABLES">DB_CREATABLES</a></dd>
|
|
<dd id="Redshift.Parser.CREATABLES" class="variable"><a href="../parser.html#Parser.CREATABLES">CREATABLES</a></dd>
|
|
<dd id="Redshift.Parser.ALTERABLES" class="variable"><a href="../parser.html#Parser.ALTERABLES">ALTERABLES</a></dd>
|
|
<dd id="Redshift.Parser.INTERVAL_VARS" class="variable"><a href="../parser.html#Parser.INTERVAL_VARS">INTERVAL_VARS</a></dd>
|
|
<dd id="Redshift.Parser.ALIAS_TOKENS" class="variable"><a href="../parser.html#Parser.ALIAS_TOKENS">ALIAS_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.ARRAY_CONSTRUCTORS" class="variable"><a href="../parser.html#Parser.ARRAY_CONSTRUCTORS">ARRAY_CONSTRUCTORS</a></dd>
|
|
<dd id="Redshift.Parser.COMMENT_TABLE_ALIAS_TOKENS" class="variable"><a href="../parser.html#Parser.COMMENT_TABLE_ALIAS_TOKENS">COMMENT_TABLE_ALIAS_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.UPDATE_ALIAS_TOKENS" class="variable"><a href="../parser.html#Parser.UPDATE_ALIAS_TOKENS">UPDATE_ALIAS_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.TRIM_TYPES" class="variable"><a href="../parser.html#Parser.TRIM_TYPES">TRIM_TYPES</a></dd>
|
|
<dd id="Redshift.Parser.FUNC_TOKENS" class="variable"><a href="../parser.html#Parser.FUNC_TOKENS">FUNC_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.CONJUNCTION" class="variable"><a href="../parser.html#Parser.CONJUNCTION">CONJUNCTION</a></dd>
|
|
<dd id="Redshift.Parser.ASSIGNMENT" class="variable"><a href="../parser.html#Parser.ASSIGNMENT">ASSIGNMENT</a></dd>
|
|
<dd id="Redshift.Parser.DISJUNCTION" class="variable"><a href="../parser.html#Parser.DISJUNCTION">DISJUNCTION</a></dd>
|
|
<dd id="Redshift.Parser.EQUALITY" class="variable"><a href="../parser.html#Parser.EQUALITY">EQUALITY</a></dd>
|
|
<dd id="Redshift.Parser.COMPARISON" class="variable"><a href="../parser.html#Parser.COMPARISON">COMPARISON</a></dd>
|
|
<dd id="Redshift.Parser.TERM" class="variable"><a href="../parser.html#Parser.TERM">TERM</a></dd>
|
|
<dd id="Redshift.Parser.FACTOR" class="variable"><a href="../parser.html#Parser.FACTOR">FACTOR</a></dd>
|
|
<dd id="Redshift.Parser.TIMES" class="variable"><a href="../parser.html#Parser.TIMES">TIMES</a></dd>
|
|
<dd id="Redshift.Parser.TIMESTAMPS" class="variable"><a href="../parser.html#Parser.TIMESTAMPS">TIMESTAMPS</a></dd>
|
|
<dd id="Redshift.Parser.SET_OPERATIONS" class="variable"><a href="../parser.html#Parser.SET_OPERATIONS">SET_OPERATIONS</a></dd>
|
|
<dd id="Redshift.Parser.JOIN_METHODS" class="variable"><a href="../parser.html#Parser.JOIN_METHODS">JOIN_METHODS</a></dd>
|
|
<dd id="Redshift.Parser.JOIN_SIDES" class="variable"><a href="../parser.html#Parser.JOIN_SIDES">JOIN_SIDES</a></dd>
|
|
<dd id="Redshift.Parser.JOIN_KINDS" class="variable"><a href="../parser.html#Parser.JOIN_KINDS">JOIN_KINDS</a></dd>
|
|
<dd id="Redshift.Parser.JOIN_HINTS" class="variable"><a href="../parser.html#Parser.JOIN_HINTS">JOIN_HINTS</a></dd>
|
|
<dd id="Redshift.Parser.LAMBDAS" class="variable"><a href="../parser.html#Parser.LAMBDAS">LAMBDAS</a></dd>
|
|
<dd id="Redshift.Parser.EXPRESSION_PARSERS" class="variable"><a href="../parser.html#Parser.EXPRESSION_PARSERS">EXPRESSION_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.UNARY_PARSERS" class="variable"><a href="../parser.html#Parser.UNARY_PARSERS">UNARY_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.STRING_PARSERS" class="variable"><a href="../parser.html#Parser.STRING_PARSERS">STRING_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.NUMERIC_PARSERS" class="variable"><a href="../parser.html#Parser.NUMERIC_PARSERS">NUMERIC_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.PRIMARY_PARSERS" class="variable"><a href="../parser.html#Parser.PRIMARY_PARSERS">PRIMARY_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.PLACEHOLDER_PARSERS" class="variable"><a href="../parser.html#Parser.PLACEHOLDER_PARSERS">PLACEHOLDER_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.CONSTRAINT_PARSERS" class="variable"><a href="../parser.html#Parser.CONSTRAINT_PARSERS">CONSTRAINT_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.ALTER_PARSERS" class="variable"><a href="../parser.html#Parser.ALTER_PARSERS">ALTER_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.ALTER_ALTER_PARSERS" class="variable"><a href="../parser.html#Parser.ALTER_ALTER_PARSERS">ALTER_ALTER_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.SCHEMA_UNNAMED_CONSTRAINTS" class="variable"><a href="../parser.html#Parser.SCHEMA_UNNAMED_CONSTRAINTS">SCHEMA_UNNAMED_CONSTRAINTS</a></dd>
|
|
<dd id="Redshift.Parser.INVALID_FUNC_NAME_TOKENS" class="variable"><a href="../parser.html#Parser.INVALID_FUNC_NAME_TOKENS">INVALID_FUNC_NAME_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.FUNCTIONS_WITH_ALIASED_ARGS" class="variable"><a href="../parser.html#Parser.FUNCTIONS_WITH_ALIASED_ARGS">FUNCTIONS_WITH_ALIASED_ARGS</a></dd>
|
|
<dd id="Redshift.Parser.KEY_VALUE_DEFINITIONS" class="variable"><a href="../parser.html#Parser.KEY_VALUE_DEFINITIONS">KEY_VALUE_DEFINITIONS</a></dd>
|
|
<dd id="Redshift.Parser.QUERY_MODIFIER_PARSERS" class="variable"><a href="../parser.html#Parser.QUERY_MODIFIER_PARSERS">QUERY_MODIFIER_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.SET_PARSERS" class="variable"><a href="../parser.html#Parser.SET_PARSERS">SET_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.SHOW_PARSERS" class="variable"><a href="../parser.html#Parser.SHOW_PARSERS">SHOW_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.TYPE_LITERAL_PARSERS" class="variable"><a href="../parser.html#Parser.TYPE_LITERAL_PARSERS">TYPE_LITERAL_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.TYPE_CONVERTERS" class="variable"><a href="../parser.html#Parser.TYPE_CONVERTERS">TYPE_CONVERTERS</a></dd>
|
|
<dd id="Redshift.Parser.DDL_SELECT_TOKENS" class="variable"><a href="../parser.html#Parser.DDL_SELECT_TOKENS">DDL_SELECT_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.PRE_VOLATILE_TOKENS" class="variable"><a href="../parser.html#Parser.PRE_VOLATILE_TOKENS">PRE_VOLATILE_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.TRANSACTION_KIND" class="variable"><a href="../parser.html#Parser.TRANSACTION_KIND">TRANSACTION_KIND</a></dd>
|
|
<dd id="Redshift.Parser.TRANSACTION_CHARACTERISTICS" class="variable"><a href="../parser.html#Parser.TRANSACTION_CHARACTERISTICS">TRANSACTION_CHARACTERISTICS</a></dd>
|
|
<dd id="Redshift.Parser.CONFLICT_ACTIONS" class="variable"><a href="../parser.html#Parser.CONFLICT_ACTIONS">CONFLICT_ACTIONS</a></dd>
|
|
<dd id="Redshift.Parser.CREATE_SEQUENCE" class="variable"><a href="../parser.html#Parser.CREATE_SEQUENCE">CREATE_SEQUENCE</a></dd>
|
|
<dd id="Redshift.Parser.ISOLATED_LOADING_OPTIONS" class="variable"><a href="../parser.html#Parser.ISOLATED_LOADING_OPTIONS">ISOLATED_LOADING_OPTIONS</a></dd>
|
|
<dd id="Redshift.Parser.USABLES" class="variable"><a href="../parser.html#Parser.USABLES">USABLES</a></dd>
|
|
<dd id="Redshift.Parser.CAST_ACTIONS" class="variable"><a href="../parser.html#Parser.CAST_ACTIONS">CAST_ACTIONS</a></dd>
|
|
<dd id="Redshift.Parser.SCHEMA_BINDING_OPTIONS" class="variable"><a href="../parser.html#Parser.SCHEMA_BINDING_OPTIONS">SCHEMA_BINDING_OPTIONS</a></dd>
|
|
<dd id="Redshift.Parser.PROCEDURE_OPTIONS" class="variable"><a href="../parser.html#Parser.PROCEDURE_OPTIONS">PROCEDURE_OPTIONS</a></dd>
|
|
<dd id="Redshift.Parser.EXECUTE_AS_OPTIONS" class="variable"><a href="../parser.html#Parser.EXECUTE_AS_OPTIONS">EXECUTE_AS_OPTIONS</a></dd>
|
|
<dd id="Redshift.Parser.KEY_CONSTRAINT_OPTIONS" class="variable"><a href="../parser.html#Parser.KEY_CONSTRAINT_OPTIONS">KEY_CONSTRAINT_OPTIONS</a></dd>
|
|
<dd id="Redshift.Parser.INSERT_ALTERNATIVES" class="variable"><a href="../parser.html#Parser.INSERT_ALTERNATIVES">INSERT_ALTERNATIVES</a></dd>
|
|
<dd id="Redshift.Parser.CLONE_KEYWORDS" class="variable"><a href="../parser.html#Parser.CLONE_KEYWORDS">CLONE_KEYWORDS</a></dd>
|
|
<dd id="Redshift.Parser.HISTORICAL_DATA_PREFIX" class="variable"><a href="../parser.html#Parser.HISTORICAL_DATA_PREFIX">HISTORICAL_DATA_PREFIX</a></dd>
|
|
<dd id="Redshift.Parser.HISTORICAL_DATA_KIND" class="variable"><a href="../parser.html#Parser.HISTORICAL_DATA_KIND">HISTORICAL_DATA_KIND</a></dd>
|
|
<dd id="Redshift.Parser.OPCLASS_FOLLOW_KEYWORDS" class="variable"><a href="../parser.html#Parser.OPCLASS_FOLLOW_KEYWORDS">OPCLASS_FOLLOW_KEYWORDS</a></dd>
|
|
<dd id="Redshift.Parser.OPTYPE_FOLLOW_TOKENS" class="variable"><a href="../parser.html#Parser.OPTYPE_FOLLOW_TOKENS">OPTYPE_FOLLOW_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.TABLE_INDEX_HINT_TOKENS" class="variable"><a href="../parser.html#Parser.TABLE_INDEX_HINT_TOKENS">TABLE_INDEX_HINT_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.VIEW_ATTRIBUTES" class="variable"><a href="../parser.html#Parser.VIEW_ATTRIBUTES">VIEW_ATTRIBUTES</a></dd>
|
|
<dd id="Redshift.Parser.WINDOW_ALIAS_TOKENS" class="variable"><a href="../parser.html#Parser.WINDOW_ALIAS_TOKENS">WINDOW_ALIAS_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.WINDOW_BEFORE_PAREN_TOKENS" class="variable"><a href="../parser.html#Parser.WINDOW_BEFORE_PAREN_TOKENS">WINDOW_BEFORE_PAREN_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.WINDOW_SIDES" class="variable"><a href="../parser.html#Parser.WINDOW_SIDES">WINDOW_SIDES</a></dd>
|
|
<dd id="Redshift.Parser.JSON_KEY_VALUE_SEPARATOR_TOKENS" class="variable"><a href="../parser.html#Parser.JSON_KEY_VALUE_SEPARATOR_TOKENS">JSON_KEY_VALUE_SEPARATOR_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.FETCH_TOKENS" class="variable"><a href="../parser.html#Parser.FETCH_TOKENS">FETCH_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.ADD_CONSTRAINT_TOKENS" class="variable"><a href="../parser.html#Parser.ADD_CONSTRAINT_TOKENS">ADD_CONSTRAINT_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.DISTINCT_TOKENS" class="variable"><a href="../parser.html#Parser.DISTINCT_TOKENS">DISTINCT_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.NULL_TOKENS" class="variable"><a href="../parser.html#Parser.NULL_TOKENS">NULL_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.UNNEST_OFFSET_ALIAS_TOKENS" class="variable"><a href="../parser.html#Parser.UNNEST_OFFSET_ALIAS_TOKENS">UNNEST_OFFSET_ALIAS_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.SELECT_START_TOKENS" class="variable"><a href="../parser.html#Parser.SELECT_START_TOKENS">SELECT_START_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.COPY_INTO_VARLEN_OPTIONS" class="variable"><a href="../parser.html#Parser.COPY_INTO_VARLEN_OPTIONS">COPY_INTO_VARLEN_OPTIONS</a></dd>
|
|
<dd id="Redshift.Parser.IS_JSON_PREDICATE_KIND" class="variable"><a href="../parser.html#Parser.IS_JSON_PREDICATE_KIND">IS_JSON_PREDICATE_KIND</a></dd>
|
|
<dd id="Redshift.Parser.ODBC_DATETIME_LITERALS" class="variable"><a href="../parser.html#Parser.ODBC_DATETIME_LITERALS">ODBC_DATETIME_LITERALS</a></dd>
|
|
<dd id="Redshift.Parser.ON_CONDITION_TOKENS" class="variable"><a href="../parser.html#Parser.ON_CONDITION_TOKENS">ON_CONDITION_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.PRIVILEGE_FOLLOW_TOKENS" class="variable"><a href="../parser.html#Parser.PRIVILEGE_FOLLOW_TOKENS">PRIVILEGE_FOLLOW_TOKENS</a></dd>
|
|
<dd id="Redshift.Parser.DESCRIBE_STYLES" class="variable"><a href="../parser.html#Parser.DESCRIBE_STYLES">DESCRIBE_STYLES</a></dd>
|
|
<dd id="Redshift.Parser.OPERATION_MODIFIERS" class="variable"><a href="../parser.html#Parser.OPERATION_MODIFIERS">OPERATION_MODIFIERS</a></dd>
|
|
<dd id="Redshift.Parser.STRICT_CAST" class="variable"><a href="../parser.html#Parser.STRICT_CAST">STRICT_CAST</a></dd>
|
|
<dd id="Redshift.Parser.PREFIXED_PIVOT_COLUMNS" class="variable"><a href="../parser.html#Parser.PREFIXED_PIVOT_COLUMNS">PREFIXED_PIVOT_COLUMNS</a></dd>
|
|
<dd id="Redshift.Parser.IDENTIFY_PIVOT_STRINGS" class="variable"><a href="../parser.html#Parser.IDENTIFY_PIVOT_STRINGS">IDENTIFY_PIVOT_STRINGS</a></dd>
|
|
<dd id="Redshift.Parser.LOG_DEFAULTS_TO_LN" class="variable"><a href="../parser.html#Parser.LOG_DEFAULTS_TO_LN">LOG_DEFAULTS_TO_LN</a></dd>
|
|
<dd id="Redshift.Parser.ALTER_TABLE_ADD_REQUIRED_FOR_EACH_COLUMN" class="variable"><a href="../parser.html#Parser.ALTER_TABLE_ADD_REQUIRED_FOR_EACH_COLUMN">ALTER_TABLE_ADD_REQUIRED_FOR_EACH_COLUMN</a></dd>
|
|
<dd id="Redshift.Parser.TABLESAMPLE_CSV" class="variable"><a href="../parser.html#Parser.TABLESAMPLE_CSV">TABLESAMPLE_CSV</a></dd>
|
|
<dd id="Redshift.Parser.DEFAULT_SAMPLING_METHOD" class="variable"><a href="../parser.html#Parser.DEFAULT_SAMPLING_METHOD">DEFAULT_SAMPLING_METHOD</a></dd>
|
|
<dd id="Redshift.Parser.SET_REQUIRES_ASSIGNMENT_DELIMITER" class="variable"><a href="../parser.html#Parser.SET_REQUIRES_ASSIGNMENT_DELIMITER">SET_REQUIRES_ASSIGNMENT_DELIMITER</a></dd>
|
|
<dd id="Redshift.Parser.TRIM_PATTERN_FIRST" class="variable"><a href="../parser.html#Parser.TRIM_PATTERN_FIRST">TRIM_PATTERN_FIRST</a></dd>
|
|
<dd id="Redshift.Parser.STRING_ALIASES" class="variable"><a href="../parser.html#Parser.STRING_ALIASES">STRING_ALIASES</a></dd>
|
|
<dd id="Redshift.Parser.MODIFIERS_ATTACHED_TO_SET_OP" class="variable"><a href="../parser.html#Parser.MODIFIERS_ATTACHED_TO_SET_OP">MODIFIERS_ATTACHED_TO_SET_OP</a></dd>
|
|
<dd id="Redshift.Parser.SET_OP_MODIFIERS" class="variable"><a href="../parser.html#Parser.SET_OP_MODIFIERS">SET_OP_MODIFIERS</a></dd>
|
|
<dd id="Redshift.Parser.NO_PAREN_IF_COMMANDS" class="variable"><a href="../parser.html#Parser.NO_PAREN_IF_COMMANDS">NO_PAREN_IF_COMMANDS</a></dd>
|
|
<dd id="Redshift.Parser.COLON_IS_VARIANT_EXTRACT" class="variable"><a href="../parser.html#Parser.COLON_IS_VARIANT_EXTRACT">COLON_IS_VARIANT_EXTRACT</a></dd>
|
|
<dd id="Redshift.Parser.VALUES_FOLLOWED_BY_PAREN" class="variable"><a href="../parser.html#Parser.VALUES_FOLLOWED_BY_PAREN">VALUES_FOLLOWED_BY_PAREN</a></dd>
|
|
<dd id="Redshift.Parser.INTERVAL_SPANS" class="variable"><a href="../parser.html#Parser.INTERVAL_SPANS">INTERVAL_SPANS</a></dd>
|
|
<dd id="Redshift.Parser.SUPPORTS_PARTITION_SELECTION" class="variable"><a href="../parser.html#Parser.SUPPORTS_PARTITION_SELECTION">SUPPORTS_PARTITION_SELECTION</a></dd>
|
|
<dd id="Redshift.Parser.error_level" class="variable"><a href="../parser.html#Parser.error_level">error_level</a></dd>
|
|
<dd id="Redshift.Parser.error_message_context" class="variable"><a href="../parser.html#Parser.error_message_context">error_message_context</a></dd>
|
|
<dd id="Redshift.Parser.max_errors" class="variable"><a href="../parser.html#Parser.max_errors">max_errors</a></dd>
|
|
<dd id="Redshift.Parser.dialect" class="variable"><a href="../parser.html#Parser.dialect">dialect</a></dd>
|
|
<dd id="Redshift.Parser.reset" class="function"><a href="../parser.html#Parser.reset">reset</a></dd>
|
|
<dd id="Redshift.Parser.parse" class="function"><a href="../parser.html#Parser.parse">parse</a></dd>
|
|
<dd id="Redshift.Parser.parse_into" class="function"><a href="../parser.html#Parser.parse_into">parse_into</a></dd>
|
|
<dd id="Redshift.Parser.check_errors" class="function"><a href="../parser.html#Parser.check_errors">check_errors</a></dd>
|
|
<dd id="Redshift.Parser.raise_error" class="function"><a href="../parser.html#Parser.raise_error">raise_error</a></dd>
|
|
<dd id="Redshift.Parser.expression" class="function"><a href="../parser.html#Parser.expression">expression</a></dd>
|
|
<dd id="Redshift.Parser.validate_expression" class="function"><a href="../parser.html#Parser.validate_expression">validate_expression</a></dd>
|
|
<dd id="Redshift.Parser.errors" class="variable"><a href="../parser.html#Parser.errors">errors</a></dd>
|
|
<dd id="Redshift.Parser.sql" class="variable"><a href="../parser.html#Parser.sql">sql</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="postgres.html#Postgres.Parser">sqlglot.dialects.postgres.Postgres.Parser</a></dt>
|
|
<dd id="Redshift.Parser.PROPERTY_PARSERS" class="variable"><a href="postgres.html#Postgres.Parser.PROPERTY_PARSERS">PROPERTY_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.FUNCTION_PARSERS" class="variable"><a href="postgres.html#Postgres.Parser.FUNCTION_PARSERS">FUNCTION_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.BITWISE" class="variable"><a href="postgres.html#Postgres.Parser.BITWISE">BITWISE</a></dd>
|
|
<dd id="Redshift.Parser.EXPONENT" class="variable"><a href="postgres.html#Postgres.Parser.EXPONENT">EXPONENT</a></dd>
|
|
<dd id="Redshift.Parser.RANGE_PARSERS" class="variable"><a href="postgres.html#Postgres.Parser.RANGE_PARSERS">RANGE_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.STATEMENT_PARSERS" class="variable"><a href="postgres.html#Postgres.Parser.STATEMENT_PARSERS">STATEMENT_PARSERS</a></dd>
|
|
<dd id="Redshift.Parser.JSON_ARROWS_REQUIRE_JSON_TYPE" class="variable"><a href="postgres.html#Postgres.Parser.JSON_ARROWS_REQUIRE_JSON_TYPE">JSON_ARROWS_REQUIRE_JSON_TYPE</a></dd>
|
|
<dd id="Redshift.Parser.COLUMN_OPERATORS" class="variable"><a href="postgres.html#Postgres.Parser.COLUMN_OPERATORS">COLUMN_OPERATORS</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="Redshift.Tokenizer">
|
|
<input id="Redshift.Tokenizer-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<div class="attr class">
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">Redshift.Tokenizer</span><wbr>(<span class="base"><a href="postgres.html#Postgres.Tokenizer">sqlglot.dialects.postgres.Postgres.Tokenizer</a></span>):
|
|
|
|
<label class="view-source-button" for="Redshift.Tokenizer-view-source"><span>View Source</span></label>
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Tokenizer"></a>
|
|
<div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Tokenizer-124"><a href="#Redshift.Tokenizer-124"><span class="linenos">124</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span>
|
|
</span><span id="Redshift.Tokenizer-125"><a href="#Redshift.Tokenizer-125"><span class="linenos">125</span></a> <span class="n">BIT_STRINGS</span> <span class="o">=</span> <span class="p">[]</span>
|
|
</span><span id="Redshift.Tokenizer-126"><a href="#Redshift.Tokenizer-126"><span class="linenos">126</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[]</span>
|
|
</span><span id="Redshift.Tokenizer-127"><a href="#Redshift.Tokenizer-127"><span class="linenos">127</span></a> <span class="n">STRING_ESCAPES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"</span><span class="se">\\</span><span class="s2">"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">]</span>
|
|
</span><span id="Redshift.Tokenizer-128"><a href="#Redshift.Tokenizer-128"><span class="linenos">128</span></a>
|
|
</span><span id="Redshift.Tokenizer-129"><a href="#Redshift.Tokenizer-129"><span class="linenos">129</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="Redshift.Tokenizer-130"><a href="#Redshift.Tokenizer-130"><span class="linenos">130</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="p">,</span>
|
|
</span><span id="Redshift.Tokenizer-131"><a href="#Redshift.Tokenizer-131"><span class="linenos">131</span></a> <span class="s2">"(+)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">JOIN_MARKER</span><span class="p">,</span>
|
|
</span><span id="Redshift.Tokenizer-132"><a href="#Redshift.Tokenizer-132"><span class="linenos">132</span></a> <span class="s2">"HLLSKETCH"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">HLLSKETCH</span><span class="p">,</span>
|
|
</span><span id="Redshift.Tokenizer-133"><a href="#Redshift.Tokenizer-133"><span class="linenos">133</span></a> <span class="s2">"MINUS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXCEPT</span><span class="p">,</span>
|
|
</span><span id="Redshift.Tokenizer-134"><a href="#Redshift.Tokenizer-134"><span class="linenos">134</span></a> <span class="s2">"SUPER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SUPER</span><span class="p">,</span>
|
|
</span><span id="Redshift.Tokenizer-135"><a href="#Redshift.Tokenizer-135"><span class="linenos">135</span></a> <span class="s2">"TOP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span>
|
|
</span><span id="Redshift.Tokenizer-136"><a href="#Redshift.Tokenizer-136"><span class="linenos">136</span></a> <span class="s2">"UNLOAD"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span>
|
|
</span><span id="Redshift.Tokenizer-137"><a href="#Redshift.Tokenizer-137"><span class="linenos">137</span></a> <span class="s2">"VARBYTE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARBINARY</span><span class="p">,</span>
|
|
</span><span id="Redshift.Tokenizer-138"><a href="#Redshift.Tokenizer-138"><span class="linenos">138</span></a> <span class="s2">"BINARY VARYING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARBINARY</span><span class="p">,</span>
|
|
</span><span id="Redshift.Tokenizer-139"><a href="#Redshift.Tokenizer-139"><span class="linenos">139</span></a> <span class="p">}</span>
|
|
</span><span id="Redshift.Tokenizer-140"><a href="#Redshift.Tokenizer-140"><span class="linenos">140</span></a> <span class="n">KEYWORDS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"VALUES"</span><span class="p">)</span>
|
|
</span><span id="Redshift.Tokenizer-141"><a href="#Redshift.Tokenizer-141"><span class="linenos">141</span></a>
|
|
</span><span id="Redshift.Tokenizer-142"><a href="#Redshift.Tokenizer-142"><span class="linenos">142</span></a> <span class="c1"># Redshift allows # to appear as a table identifier prefix</span>
|
|
</span><span id="Redshift.Tokenizer-143"><a href="#Redshift.Tokenizer-143"><span class="linenos">143</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="n">Postgres</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span>
|
|
</span><span id="Redshift.Tokenizer-144"><a href="#Redshift.Tokenizer-144"><span class="linenos">144</span></a> <span class="n">SINGLE_TOKENS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"#"</span><span class="p">)</span>
|
|
</span></pre></div>
|
|
|
|
|
|
|
|
|
|
<div id="Redshift.Tokenizer.BIT_STRINGS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">BIT_STRINGS</span> =
|
|
<span class="default_value">[]</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Tokenizer.BIT_STRINGS"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Tokenizer.HEX_STRINGS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">HEX_STRINGS</span> =
|
|
<span class="default_value">[]</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Tokenizer.HEX_STRINGS"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Tokenizer.STRING_ESCAPES" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">STRING_ESCAPES</span> =
|
|
<span class="default_value">['\\', "'"]</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Tokenizer.STRING_ESCAPES"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Tokenizer.KEYWORDS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">KEYWORDS</span> =
|
|
<input id="Redshift.Tokenizer.KEYWORDS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.Tokenizer.KEYWORDS-view-value"></label><span class="default_value">{'{%': <TokenType.BLOCK_START: 'BLOCK_START'>, '{%+': <TokenType.BLOCK_START: 'BLOCK_START'>, '{%-': <TokenType.BLOCK_START: 'BLOCK_START'>, '%}': <TokenType.BLOCK_END: 'BLOCK_END'>, '+%}': <TokenType.BLOCK_END: 'BLOCK_END'>, '-%}': <TokenType.BLOCK_END: 'BLOCK_END'>, '{{+': <TokenType.BLOCK_START: 'BLOCK_START'>, '{{-': <TokenType.BLOCK_START: 'BLOCK_START'>, '+}}': <TokenType.BLOCK_END: 'BLOCK_END'>, '-}}': <TokenType.BLOCK_END: 'BLOCK_END'>, '==': <TokenType.EQ: 'EQ'>, '::': <TokenType.DCOLON: 'DCOLON'>, '||': <TokenType.DPIPE: 'DPIPE'>, '>=': <TokenType.GTE: 'GTE'>, '<=': <TokenType.LTE: 'LTE'>, '<>': <TokenType.NEQ: 'NEQ'>, '!=': <TokenType.NEQ: 'NEQ'>, ':=': <TokenType.COLON_EQ: 'COLON_EQ'>, '<=>': <TokenType.NULLSAFE_EQ: 'NULLSAFE_EQ'>, '->': <TokenType.ARROW: 'ARROW'>, '->>': <TokenType.DARROW: 'DARROW'>, '=>': <TokenType.FARROW: 'FARROW'>, '#>': <TokenType.HASH_ARROW: 'HASH_ARROW'>, '#>>': <TokenType.DHASH_ARROW: 'DHASH_ARROW'>, '<->': <TokenType.LR_ARROW: 'LR_ARROW'>, '&&': <TokenType.DAMP: 'DAMP'>, '??': <TokenType.DQMARK: 'DQMARK'>, '~~~': <TokenType.GLOB: 'GLOB'>, '~~': <TokenType.LIKE: 'LIKE'>, '~~*': <TokenType.ILIKE: 'ILIKE'>, '~*': <TokenType.IRLIKE: 'IRLIKE'>, 'ALL': <TokenType.ALL: 'ALL'>, 'ALWAYS': <TokenType.ALWAYS: 'ALWAYS'>, 'AND': <TokenType.AND: 'AND'>, 'ANTI': <TokenType.ANTI: 'ANTI'>, 'ANY': <TokenType.ANY: 'ANY'>, 'ASC': <TokenType.ASC: 'ASC'>, 'AS': <TokenType.ALIAS: 'ALIAS'>, 'ASOF': <TokenType.ASOF: 'ASOF'>, 'AUTOINCREMENT': <TokenType.AUTO_INCREMENT: 'AUTO_INCREMENT'>, 'AUTO_INCREMENT': <TokenType.AUTO_INCREMENT: 'AUTO_INCREMENT'>, 'BEGIN': <TokenType.COMMAND: 'COMMAND'>, 'BETWEEN': <TokenType.BETWEEN: 'BETWEEN'>, 'CACHE': <TokenType.CACHE: 'CACHE'>, 'UNCACHE': <TokenType.UNCACHE: 'UNCACHE'>, 'CASE': <TokenType.CASE: 'CASE'>, 'CHARACTER SET': <TokenType.CHARACTER_SET: 'CHARACTER_SET'>, 'CLUSTER BY': <TokenType.CLUSTER_BY: 'CLUSTER_BY'>, 'COLLATE': <TokenType.COLLATE: 'COLLATE'>, 'COLUMN': <TokenType.COLUMN: 'COLUMN'>, 'COMMIT': <TokenType.COMMIT: 'COMMIT'>, 'CONNECT BY': <TokenType.CONNECT_BY: 'CONNECT_BY'>, 'CONSTRAINT': <TokenType.CONSTRAINT: 'CONSTRAINT'>, 'COPY': <TokenType.COPY: 'COPY'>, 'CREATE': <TokenType.CREATE: 'CREATE'>, 'CROSS': <TokenType.CROSS: 'CROSS'>, 'CUBE': <TokenType.CUBE: 'CUBE'>, 'CURRENT_DATE': <TokenType.CURRENT_DATE: 'CURRENT_DATE'>, 'CURRENT_TIME': <TokenType.CURRENT_TIME: 'CURRENT_TIME'>, 'CURRENT_TIMESTAMP': <TokenType.CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP'>, 'CURRENT_USER': <TokenType.CURRENT_USER: 'CURRENT_USER'>, 'DATABASE': <TokenType.DATABASE: 'DATABASE'>, 'DEFAULT': <TokenType.DEFAULT: 'DEFAULT'>, 'DELETE': <TokenType.DELETE: 'DELETE'>, 'DESC': <TokenType.DESC: 'DESC'>, 'DESCRIBE': <TokenType.DESCRIBE: 'DESCRIBE'>, 'DISTINCT': <TokenType.DISTINCT: 'DISTINCT'>, 'DISTRIBUTE BY': <TokenType.DISTRIBUTE_BY: 'DISTRIBUTE_BY'>, 'DROP': <TokenType.DROP: 'DROP'>, 'ELSE': <TokenType.ELSE: 'ELSE'>, 'END': <TokenType.END: 'END'>, 'ENUM': <TokenType.ENUM: 'ENUM'>, 'ESCAPE': <TokenType.ESCAPE: 'ESCAPE'>, 'EXCEPT': <TokenType.EXCEPT: 'EXCEPT'>, 'EXECUTE': <TokenType.EXECUTE: 'EXECUTE'>, 'EXISTS': <TokenType.EXISTS: 'EXISTS'>, 'FALSE': <TokenType.FALSE: 'FALSE'>, 'FETCH': <TokenType.FETCH: 'FETCH'>, 'FILTER': <TokenType.FILTER: 'FILTER'>, 'FIRST': <TokenType.FIRST: 'FIRST'>, 'FULL': <TokenType.FULL: 'FULL'>, 'FUNCTION': <TokenType.FUNCTION: 'FUNCTION'>, 'FOR': <TokenType.FOR: 'FOR'>, 'FOREIGN KEY': <TokenType.FOREIGN_KEY: 'FOREIGN_KEY'>, 'FORMAT': <TokenType.FORMAT: 'FORMAT'>, 'FROM': <TokenType.FROM: 'FROM'>, 'GEOGRAPHY': <TokenType.GEOGRAPHY: 'GEOGRAPHY'>, 'GEOMETRY': <TokenType.GEOMETRY: 'GEOMETRY'>, 'GLOB': <TokenType.GLOB: 'GLOB'>, 'GROUP BY': <TokenType.GROUP_BY: 'GROUP_BY'>, 'GROUPING SETS': <TokenType.GROUPING_SETS: 'GROUPING_SETS'>, 'HAVING': <TokenType.HAVING: 'HAVING'>, 'ILIKE': <TokenType.ILIKE: 'ILIKE'>, 'IN': <TokenType.IN: 'IN'>, 'INDEX': <TokenType.INDEX: 'INDEX'>, 'INET': <TokenType.INET: 'INET'>, 'INNER': <TokenType.INNER: 'INNER'>, 'INSERT': <TokenType.INSERT: 'INSERT'>, 'INTERVAL': <TokenType.INTERVAL: 'INTERVAL'>, 'INTERSECT': <TokenType.INTERSECT: 'INTERSECT'>, 'INTO': <TokenType.INTO: 'INTO'>, 'IS': <TokenType.IS: 'IS'>, 'ISNULL': <TokenType.ISNULL: 'ISNULL'>, 'JOIN': <TokenType.JOIN: 'JOIN'>, 'KEEP': <TokenType.KEEP: 'KEEP'>, 'KILL': <TokenType.KILL: 'KILL'>, 'LATERAL': <TokenType.LATERAL: 'LATERAL'>, 'LEFT': <TokenType.LEFT: 'LEFT'>, 'LIKE': <TokenType.LIKE: 'LIKE'>, 'LIMIT': <TokenType.LIMIT: 'LIMIT'>, 'LOAD': <TokenType.LOAD: 'LOAD'>, 'LOCK': <TokenType.LOCK: 'LOCK'>, 'MERGE': <TokenType.MERGE: 'MERGE'>, 'NATURAL': <TokenType.NATURAL: 'NATURAL'>, 'NEXT': <TokenType.NEXT: 'NEXT'>, 'NOT': <TokenType.NOT: 'NOT'>, 'NOTNULL': <TokenType.NOTNULL: 'NOTNULL'>, 'NULL': <TokenType.NULL: 'NULL'>, 'OBJECT': <TokenType.OBJECT: 'OBJECT'>, 'OFFSET': <TokenType.OFFSET: 'OFFSET'>, 'ON': <TokenType.ON: 'ON'>, 'OR': <TokenType.OR: 'OR'>, 'XOR': <TokenType.XOR: 'XOR'>, 'ORDER BY': <TokenType.ORDER_BY: 'ORDER_BY'>, 'ORDINALITY': <TokenType.ORDINALITY: 'ORDINALITY'>, 'OUTER': <TokenType.OUTER: 'OUTER'>, 'OVER': <TokenType.OVER: 'OVER'>, 'OVERLAPS': <TokenType.OVERLAPS: 'OVERLAPS'>, 'OVERWRITE': <TokenType.OVERWRITE: 'OVERWRITE'>, 'PARTITION': <TokenType.PARTITION: 'PARTITION'>, 'PARTITION BY': <TokenType.PARTITION_BY: 'PARTITION_BY'>, 'PARTITIONED BY': <TokenType.PARTITION_BY: 'PARTITION_BY'>, 'PARTITIONED_BY': <TokenType.PARTITION_BY: 'PARTITION_BY'>, 'PERCENT': <TokenType.PERCENT: 'PERCENT'>, 'PIVOT': <TokenType.PIVOT: 'PIVOT'>, 'PRAGMA': <TokenType.PRAGMA: 'PRAGMA'>, 'PRIMARY KEY': <TokenType.PRIMARY_KEY: 'PRIMARY_KEY'>, 'PROCEDURE': <TokenType.PROCEDURE: 'PROCEDURE'>, 'QUALIFY': <TokenType.QUALIFY: 'QUALIFY'>, 'RANGE': <TokenType.RANGE: 'RANGE'>, 'RECURSIVE': <TokenType.RECURSIVE: 'RECURSIVE'>, 'REGEXP': <TokenType.RLIKE: 'RLIKE'>, 'RENAME': <TokenType.RENAME: 'RENAME'>, 'REPLACE': <TokenType.REPLACE: 'REPLACE'>, 'RETURNING': <TokenType.RETURNING: 'RETURNING'>, 'REFERENCES': <TokenType.REFERENCES: 'REFERENCES'>, 'RIGHT': <TokenType.RIGHT: 'RIGHT'>, 'RLIKE': <TokenType.RLIKE: 'RLIKE'>, 'ROLLBACK': <TokenType.ROLLBACK: 'ROLLBACK'>, 'ROLLUP': <TokenType.ROLLUP: 'ROLLUP'>, 'ROW': <TokenType.ROW: 'ROW'>, 'ROWS': <TokenType.ROWS: 'ROWS'>, 'SCHEMA': <TokenType.SCHEMA: 'SCHEMA'>, 'SELECT': <TokenType.SELECT: 'SELECT'>, 'SEMI': <TokenType.SEMI: 'SEMI'>, 'SET': <TokenType.SET: 'SET'>, 'SETTINGS': <TokenType.SETTINGS: 'SETTINGS'>, 'SHOW': <TokenType.SHOW: 'SHOW'>, 'SIMILAR TO': <TokenType.SIMILAR_TO: 'SIMILAR_TO'>, 'SOME': <TokenType.SOME: 'SOME'>, 'SORT BY': <TokenType.SORT_BY: 'SORT_BY'>, 'START WITH': <TokenType.START_WITH: 'START_WITH'>, 'STRAIGHT_JOIN': <TokenType.STRAIGHT_JOIN: 'STRAIGHT_JOIN'>, 'TABLE': <TokenType.TABLE: 'TABLE'>, 'TABLESAMPLE': <TokenType.TABLE_SAMPLE: 'TABLE_SAMPLE'>, 'TEMP': <TokenType.TEMPORARY: 'TEMPORARY'>, 'TEMPORARY': <TokenType.TEMPORARY: 'TEMPORARY'>, 'THEN': <TokenType.THEN: 'THEN'>, 'TRUE': <TokenType.TRUE: 'TRUE'>, 'TRUNCATE': <TokenType.TRUNCATE: 'TRUNCATE'>, 'UNION': <TokenType.UNION: 'UNION'>, 'UNKNOWN': <TokenType.UNKNOWN: 'UNKNOWN'>, 'UNNEST': <TokenType.UNNEST: 'UNNEST'>, 'UNPIVOT': <TokenType.UNPIVOT: 'UNPIVOT'>, 'UPDATE': <TokenType.UPDATE: 'UPDATE'>, 'USE': <TokenType.USE: 'USE'>, 'USING': <TokenType.USING: 'USING'>, 'UUID': <TokenType.UUID: 'UUID'>, 'VIEW': <TokenType.VIEW: 'VIEW'>, 'VOLATILE': <TokenType.VOLATILE: 'VOLATILE'>, 'WHEN': <TokenType.WHEN: 'WHEN'>, 'WHERE': <TokenType.WHERE: 'WHERE'>, 'WINDOW': <TokenType.WINDOW: 'WINDOW'>, 'WITH': <TokenType.WITH: 'WITH'>, 'APPLY': <TokenType.APPLY: 'APPLY'>, 'ARRAY': <TokenType.ARRAY: 'ARRAY'>, 'BIT': <TokenType.BIT: 'BIT'>, 'BOOL': <TokenType.BOOLEAN: 'BOOLEAN'>, 'BOOLEAN': <TokenType.BOOLEAN: 'BOOLEAN'>, 'BYTE': <TokenType.TINYINT: 'TINYINT'>, 'MEDIUMINT': <TokenType.MEDIUMINT: 'MEDIUMINT'>, 'INT1': <TokenType.TINYINT: 'TINYINT'>, 'TINYINT': <TokenType.TINYINT: 'TINYINT'>, 'INT16': <TokenType.SMALLINT: 'SMALLINT'>, 'SHORT': <TokenType.SMALLINT: 'SMALLINT'>, 'SMALLINT': <TokenType.SMALLINT: 'SMALLINT'>, 'INT128': <TokenType.INT128: 'INT128'>, 'HUGEINT': <TokenType.INT128: 'INT128'>, 'UHUGEINT': <TokenType.UINT128: 'UINT128'>, 'INT2': <TokenType.SMALLINT: 'SMALLINT'>, 'INTEGER': <TokenType.INT: 'INT'>, 'INT': <TokenType.INT: 'INT'>, 'INT4': <TokenType.INT: 'INT'>, 'INT32': <TokenType.INT: 'INT'>, 'INT64': <TokenType.BIGINT: 'BIGINT'>, 'LONG': <TokenType.BIGINT: 'BIGINT'>, 'BIGINT': <TokenType.BIGINT: 'BIGINT'>, 'INT8': <TokenType.BIGINT: 'BIGINT'>, 'UINT': <TokenType.UINT: 'UINT'>, 'DEC': <TokenType.DECIMAL: 'DECIMAL'>, 'DECIMAL': <TokenType.DECIMAL: 'DECIMAL'>, 'DECIMAL32': <TokenType.DECIMAL32: 'DECIMAL32'>, 'DECIMAL64': <TokenType.DECIMAL64: 'DECIMAL64'>, 'DECIMAL128': <TokenType.DECIMAL128: 'DECIMAL128'>, 'DECIMAL256': <TokenType.DECIMAL256: 'DECIMAL256'>, 'BIGDECIMAL': <TokenType.BIGDECIMAL: 'BIGDECIMAL'>, 'BIGNUMERIC': <TokenType.BIGDECIMAL: 'BIGDECIMAL'>, 'LIST': <TokenType.LIST: 'LIST'>, 'MAP': <TokenType.MAP: 'MAP'>, 'NULLABLE': <TokenType.NULLABLE: 'NULLABLE'>, 'NUMBER': <TokenType.DECIMAL: 'DECIMAL'>, 'NUMERIC': <TokenType.DECIMAL: 'DECIMAL'>, 'FIXED': <TokenType.DECIMAL: 'DECIMAL'>, 'REAL': <TokenType.FLOAT: 'FLOAT'>, 'FLOAT': <TokenType.DOUBLE: 'DOUBLE'>, 'FLOAT4': <TokenType.FLOAT: 'FLOAT'>, 'FLOAT8': <TokenType.DOUBLE: 'DOUBLE'>, 'DOUBLE': <TokenType.DOUBLE: 'DOUBLE'>, 'DOUBLE PRECISION': <TokenType.DOUBLE: 'DOUBLE'>, 'JSON': <TokenType.JSON: 'JSON'>, 'JSONB': <TokenType.JSONB: 'JSONB'>, 'CHAR': <TokenType.CHAR: 'CHAR'>, 'CHARACTER': <TokenType.CHAR: 'CHAR'>, 'NCHAR': <TokenType.NCHAR: 'NCHAR'>, 'VARCHAR': <TokenType.VARCHAR: 'VARCHAR'>, 'VARCHAR2': <TokenType.VARCHAR: 'VARCHAR'>, 'NVARCHAR': <TokenType.NVARCHAR: 'NVARCHAR'>, 'NVARCHAR2': <TokenType.NVARCHAR: 'NVARCHAR'>, 'BPCHAR': <TokenType.BPCHAR: 'BPCHAR'>, 'STR': <TokenType.TEXT: 'TEXT'>, 'STRING': <TokenType.TEXT: 'TEXT'>, 'TEXT': <TokenType.TEXT: 'TEXT'>, 'LONGTEXT': <TokenType.LONGTEXT: 'LONGTEXT'>, 'MEDIUMTEXT': <TokenType.MEDIUMTEXT: 'MEDIUMTEXT'>, 'TINYTEXT': <TokenType.TINYTEXT: 'TINYTEXT'>, 'CLOB': <TokenType.TEXT: 'TEXT'>, 'LONGVARCHAR': <TokenType.TEXT: 'TEXT'>, 'BINARY': <TokenType.BINARY: 'BINARY'>, 'BLOB': <TokenType.VARBINARY: 'VARBINARY'>, 'LONGBLOB': <TokenType.LONGBLOB: 'LONGBLOB'>, 'MEDIUMBLOB': <TokenType.MEDIUMBLOB: 'MEDIUMBLOB'>, 'TINYBLOB': <TokenType.TINYBLOB: 'TINYBLOB'>, 'BYTEA': <TokenType.VARBINARY: 'VARBINARY'>, 'VARBINARY': <TokenType.VARBINARY: 'VARBINARY'>, 'TIME': <TokenType.TIME: 'TIME'>, 'TIMETZ': <TokenType.TIMETZ: 'TIMETZ'>, 'TIMESTAMP': <TokenType.TIMESTAMP: 'TIMESTAMP'>, 'TIMESTAMPTZ': <TokenType.TIMESTAMPTZ: 'TIMESTAMPTZ'>, 'TIMESTAMPLTZ': <TokenType.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>, 'TIMESTAMP_LTZ': <TokenType.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>, 'TIMESTAMPNTZ': <TokenType.TIMESTAMPNTZ: 'TIMESTAMPNTZ'>, 'TIMESTAMP_NTZ': <TokenType.TIMESTAMPNTZ: 'TIMESTAMPNTZ'>, 'DATE': <TokenType.DATE: 'DATE'>, 'DATETIME': <TokenType.DATETIME: 'DATETIME'>, 'INT4RANGE': <TokenType.INT4RANGE: 'INT4RANGE'>, 'INT4MULTIRANGE': <TokenType.INT4MULTIRANGE: 'INT4MULTIRANGE'>, 'INT8RANGE': <TokenType.INT8RANGE: 'INT8RANGE'>, 'INT8MULTIRANGE': <TokenType.INT8MULTIRANGE: 'INT8MULTIRANGE'>, 'NUMRANGE': <TokenType.NUMRANGE: 'NUMRANGE'>, 'NUMMULTIRANGE': <TokenType.NUMMULTIRANGE: 'NUMMULTIRANGE'>, 'TSRANGE': <TokenType.TSRANGE: 'TSRANGE'>, 'TSMULTIRANGE': <TokenType.TSMULTIRANGE: 'TSMULTIRANGE'>, 'TSTZRANGE': <TokenType.TSTZRANGE: 'TSTZRANGE'>, 'TSTZMULTIRANGE': <TokenType.TSTZMULTIRANGE: 'TSTZMULTIRANGE'>, 'DATERANGE': <TokenType.DATERANGE: 'DATERANGE'>, 'DATEMULTIRANGE': <TokenType.DATEMULTIRANGE: 'DATEMULTIRANGE'>, 'UNIQUE': <TokenType.UNIQUE: 'UNIQUE'>, 'VECTOR': <TokenType.VECTOR: 'VECTOR'>, 'STRUCT': <TokenType.STRUCT: 'STRUCT'>, 'SEQUENCE': <TokenType.SEQUENCE: 'SEQUENCE'>, 'VARIANT': <TokenType.VARIANT: 'VARIANT'>, 'ALTER': <TokenType.ALTER: 'ALTER'>, 'ANALYZE': <TokenType.COMMAND: 'COMMAND'>, 'CALL': <TokenType.COMMAND: 'COMMAND'>, 'COMMENT': <TokenType.COMMENT: 'COMMENT'>, 'EXPLAIN': <TokenType.COMMAND: 'COMMAND'>, 'GRANT': <TokenType.GRANT: 'GRANT'>, 'OPTIMIZE': <TokenType.COMMAND: 'COMMAND'>, 'PREPARE': <TokenType.COMMAND: 'COMMAND'>, 'VACUUM': <TokenType.COMMAND: 'COMMAND'>, 'USER-DEFINED': <TokenType.USERDEFINED: 'USERDEFINED'>, 'FOR VERSION': <TokenType.VERSION_SNAPSHOT: 'VERSION_SNAPSHOT'>, 'FOR TIMESTAMP': <TokenType.TIMESTAMP_SNAPSHOT: 'TIMESTAMP_SNAPSHOT'>, '~': <TokenType.RLIKE: 'RLIKE'>, '@@': <TokenType.DAT: 'DAT'>, '@>': <TokenType.AT_GT: 'AT_GT'>, '<@': <TokenType.LT_AT: 'LT_AT'>, '|/': <TokenType.PIPE_SLASH: 'PIPE_SLASH'>, '||/': <TokenType.DPIPE_SLASH: 'DPIPE_SLASH'>, 'BEGIN TRANSACTION': <TokenType.BEGIN: 'BEGIN'>, 'BIGSERIAL': <TokenType.BIGSERIAL: 'BIGSERIAL'>, 'CHARACTER VARYING': <TokenType.VARCHAR: 'VARCHAR'>, 'CONSTRAINT TRIGGER': <TokenType.COMMAND: 'COMMAND'>, 'CSTRING': <TokenType.PSEUDO_TYPE: 'PSEUDO_TYPE'>, 'DECLARE': <TokenType.COMMAND: 'COMMAND'>, 'DO': <TokenType.COMMAND: 'COMMAND'>, 'EXEC': <TokenType.COMMAND: 'COMMAND'>, 'HSTORE': <TokenType.HSTORE: 'HSTORE'>, 'MONEY': <TokenType.MONEY: 'MONEY'>, 'NAME': <TokenType.NAME: 'NAME'>, 'OID': <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, 'ONLY': <TokenType.ONLY: 'ONLY'>, 'OPERATOR': <TokenType.OPERATOR: 'OPERATOR'>, 'REFRESH': <TokenType.COMMAND: 'COMMAND'>, 'REINDEX': <TokenType.COMMAND: 'COMMAND'>, 'RESET': <TokenType.COMMAND: 'COMMAND'>, 'REVOKE': <TokenType.COMMAND: 'COMMAND'>, 'SERIAL': <TokenType.SERIAL: 'SERIAL'>, 'SMALLSERIAL': <TokenType.SMALLSERIAL: 'SMALLSERIAL'>, 'REGCLASS': <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, 'REGCOLLATION': <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, 'REGCONFIG': <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, 'REGDICTIONARY': <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, 'REGNAMESPACE': <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, 'REGOPER': <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, 'REGOPERATOR': <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, 'REGPROC': <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, 'REGPROCEDURE': <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, 'REGROLE': <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, 'REGTYPE': <TokenType.OBJECT_IDENTIFIER: 'OBJECT_IDENTIFIER'>, '(+)': <TokenType.JOIN_MARKER: 'JOIN_MARKER'>, 'HLLSKETCH': <TokenType.HLLSKETCH: 'HLLSKETCH'>, 'MINUS': <TokenType.EXCEPT: 'EXCEPT'>, 'SUPER': <TokenType.SUPER: 'SUPER'>, 'TOP': <TokenType.TOP: 'TOP'>, 'UNLOAD': <TokenType.COMMAND: 'COMMAND'>, 'VARBYTE': <TokenType.VARBINARY: 'VARBINARY'>, 'BINARY VARYING': <TokenType.VARBINARY: 'VARBINARY'>}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Tokenizer.KEYWORDS"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Tokenizer.SINGLE_TOKENS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">SINGLE_TOKENS</span> =
|
|
<input id="Redshift.Tokenizer.SINGLE_TOKENS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.Tokenizer.SINGLE_TOKENS-view-value"></label><span class="default_value">{'(': <TokenType.L_PAREN: 'L_PAREN'>, ')': <TokenType.R_PAREN: 'R_PAREN'>, '[': <TokenType.L_BRACKET: 'L_BRACKET'>, ']': <TokenType.R_BRACKET: 'R_BRACKET'>, '{': <TokenType.L_BRACE: 'L_BRACE'>, '}': <TokenType.R_BRACE: 'R_BRACE'>, '&': <TokenType.AMP: 'AMP'>, '^': <TokenType.CARET: 'CARET'>, ':': <TokenType.COLON: 'COLON'>, ',': <TokenType.COMMA: 'COMMA'>, '.': <TokenType.DOT: 'DOT'>, '-': <TokenType.DASH: 'DASH'>, '=': <TokenType.EQ: 'EQ'>, '>': <TokenType.GT: 'GT'>, '<': <TokenType.LT: 'LT'>, '%': <TokenType.MOD: 'MOD'>, '!': <TokenType.NOT: 'NOT'>, '|': <TokenType.PIPE: 'PIPE'>, '+': <TokenType.PLUS: 'PLUS'>, ';': <TokenType.SEMICOLON: 'SEMICOLON'>, '/': <TokenType.SLASH: 'SLASH'>, '\\': <TokenType.BACKSLASH: 'BACKSLASH'>, '*': <TokenType.STAR: 'STAR'>, '~': <TokenType.TILDA: 'TILDA'>, '?': <TokenType.PLACEHOLDER: 'PLACEHOLDER'>, '@': <TokenType.PARAMETER: 'PARAMETER'>, "'": <TokenType.UNKNOWN: 'UNKNOWN'>, '`': <TokenType.UNKNOWN: 'UNKNOWN'>, '"': <TokenType.UNKNOWN: 'UNKNOWN'>, '$': <TokenType.HEREDOC_STRING: 'HEREDOC_STRING'>}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Tokenizer.SINGLE_TOKENS"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="../tokens.html#Tokenizer">sqlglot.tokens.Tokenizer</a></dt>
|
|
<dd id="Redshift.Tokenizer.__init__" class="function"><a href="../tokens.html#Tokenizer.__init__">Tokenizer</a></dd>
|
|
<dd id="Redshift.Tokenizer.RAW_STRINGS" class="variable"><a href="../tokens.html#Tokenizer.RAW_STRINGS">RAW_STRINGS</a></dd>
|
|
<dd id="Redshift.Tokenizer.UNICODE_STRINGS" class="variable"><a href="../tokens.html#Tokenizer.UNICODE_STRINGS">UNICODE_STRINGS</a></dd>
|
|
<dd id="Redshift.Tokenizer.IDENTIFIERS" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIERS">IDENTIFIERS</a></dd>
|
|
<dd id="Redshift.Tokenizer.QUOTES" class="variable"><a href="../tokens.html#Tokenizer.QUOTES">QUOTES</a></dd>
|
|
<dd id="Redshift.Tokenizer.IDENTIFIER_ESCAPES" class="variable"><a href="../tokens.html#Tokenizer.IDENTIFIER_ESCAPES">IDENTIFIER_ESCAPES</a></dd>
|
|
<dd id="Redshift.Tokenizer.STRING_ESCAPES_ALLOWED_IN_RAW_STRINGS" class="variable"><a href="../tokens.html#Tokenizer.STRING_ESCAPES_ALLOWED_IN_RAW_STRINGS">STRING_ESCAPES_ALLOWED_IN_RAW_STRINGS</a></dd>
|
|
<dd id="Redshift.Tokenizer.NESTED_COMMENTS" class="variable"><a href="../tokens.html#Tokenizer.NESTED_COMMENTS">NESTED_COMMENTS</a></dd>
|
|
<dd id="Redshift.Tokenizer.WHITE_SPACE" class="variable"><a href="../tokens.html#Tokenizer.WHITE_SPACE">WHITE_SPACE</a></dd>
|
|
<dd id="Redshift.Tokenizer.COMMANDS" class="variable"><a href="../tokens.html#Tokenizer.COMMANDS">COMMANDS</a></dd>
|
|
<dd id="Redshift.Tokenizer.COMMAND_PREFIX_TOKENS" class="variable"><a href="../tokens.html#Tokenizer.COMMAND_PREFIX_TOKENS">COMMAND_PREFIX_TOKENS</a></dd>
|
|
<dd id="Redshift.Tokenizer.NUMERIC_LITERALS" class="variable"><a href="../tokens.html#Tokenizer.NUMERIC_LITERALS">NUMERIC_LITERALS</a></dd>
|
|
<dd id="Redshift.Tokenizer.COMMENTS" class="variable"><a href="../tokens.html#Tokenizer.COMMENTS">COMMENTS</a></dd>
|
|
<dd id="Redshift.Tokenizer.dialect" class="variable"><a href="../tokens.html#Tokenizer.dialect">dialect</a></dd>
|
|
<dd id="Redshift.Tokenizer.reset" class="function"><a href="../tokens.html#Tokenizer.reset">reset</a></dd>
|
|
<dd id="Redshift.Tokenizer.tokenize" class="function"><a href="../tokens.html#Tokenizer.tokenize">tokenize</a></dd>
|
|
<dd id="Redshift.Tokenizer.tokenize_rs" class="function"><a href="../tokens.html#Tokenizer.tokenize_rs">tokenize_rs</a></dd>
|
|
<dd id="Redshift.Tokenizer.size" class="variable"><a href="../tokens.html#Tokenizer.size">size</a></dd>
|
|
<dd id="Redshift.Tokenizer.sql" class="variable"><a href="../tokens.html#Tokenizer.sql">sql</a></dd>
|
|
<dd id="Redshift.Tokenizer.tokens" class="variable"><a href="../tokens.html#Tokenizer.tokens">tokens</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="postgres.html#Postgres.Tokenizer">sqlglot.dialects.postgres.Postgres.Tokenizer</a></dt>
|
|
<dd id="Redshift.Tokenizer.BYTE_STRINGS" class="variable"><a href="postgres.html#Postgres.Tokenizer.BYTE_STRINGS">BYTE_STRINGS</a></dd>
|
|
<dd id="Redshift.Tokenizer.HEREDOC_STRINGS" class="variable"><a href="postgres.html#Postgres.Tokenizer.HEREDOC_STRINGS">HEREDOC_STRINGS</a></dd>
|
|
<dd id="Redshift.Tokenizer.HEREDOC_TAG_IS_IDENTIFIER" class="variable"><a href="postgres.html#Postgres.Tokenizer.HEREDOC_TAG_IS_IDENTIFIER">HEREDOC_TAG_IS_IDENTIFIER</a></dd>
|
|
<dd id="Redshift.Tokenizer.HEREDOC_STRING_ALTERNATIVE" class="variable"><a href="postgres.html#Postgres.Tokenizer.HEREDOC_STRING_ALTERNATIVE">HEREDOC_STRING_ALTERNATIVE</a></dd>
|
|
<dd id="Redshift.Tokenizer.VAR_SINGLE_TOKENS" class="variable"><a href="postgres.html#Postgres.Tokenizer.VAR_SINGLE_TOKENS">VAR_SINGLE_TOKENS</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="Redshift.Generator">
|
|
<input id="Redshift.Generator-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<div class="attr class">
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">Redshift.Generator</span><wbr>(<span class="base"><a href="postgres.html#Postgres.Generator">sqlglot.dialects.postgres.Postgres.Generator</a></span>):
|
|
|
|
<label class="view-source-button" for="Redshift.Generator-view-source"><span>View Source</span></label>
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator"></a>
|
|
<div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator-146"><a href="#Redshift.Generator-146"><span class="linenos">146</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span>
|
|
</span><span id="Redshift.Generator-147"><a href="#Redshift.Generator-147"><span class="linenos">147</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift.Generator-148"><a href="#Redshift.Generator-148"><span class="linenos">148</span></a> <span class="n">QUERY_HINTS</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift.Generator-149"><a href="#Redshift.Generator-149"><span class="linenos">149</span></a> <span class="n">VALUES_AS_TABLE</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift.Generator-150"><a href="#Redshift.Generator-150"><span class="linenos">150</span></a> <span class="n">TZ_TO_WITH_TIME_ZONE</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift.Generator-151"><a href="#Redshift.Generator-151"><span class="linenos">151</span></a> <span class="n">NVL2_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift.Generator-152"><a href="#Redshift.Generator-152"><span class="linenos">152</span></a> <span class="n">LAST_DAY_SUPPORTS_DATE_PART</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift.Generator-153"><a href="#Redshift.Generator-153"><span class="linenos">153</span></a> <span class="n">CAN_IMPLEMENT_ARRAY_ANY</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift.Generator-154"><a href="#Redshift.Generator-154"><span class="linenos">154</span></a> <span class="n">MULTI_ARG_DISTINCT</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift.Generator-155"><a href="#Redshift.Generator-155"><span class="linenos">155</span></a> <span class="n">COPY_PARAMS_ARE_WRAPPED</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift.Generator-156"><a href="#Redshift.Generator-156"><span class="linenos">156</span></a> <span class="n">HEX_FUNC</span> <span class="o">=</span> <span class="s2">"TO_HEX"</span>
|
|
</span><span id="Redshift.Generator-157"><a href="#Redshift.Generator-157"><span class="linenos">157</span></a> <span class="n">PARSE_JSON_NAME</span> <span class="o">=</span> <span class="s2">"JSON_PARSE"</span>
|
|
</span><span id="Redshift.Generator-158"><a href="#Redshift.Generator-158"><span class="linenos">158</span></a> <span class="n">ARRAY_CONCAT_IS_VAR_LEN</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift.Generator-159"><a href="#Redshift.Generator-159"><span class="linenos">159</span></a> <span class="n">SUPPORTS_CONVERT_TIMEZONE</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift.Generator-160"><a href="#Redshift.Generator-160"><span class="linenos">160</span></a> <span class="n">EXCEPT_INTERSECT_SUPPORT_ALL_CLAUSE</span> <span class="o">=</span> <span class="kc">False</span>
|
|
</span><span id="Redshift.Generator-161"><a href="#Redshift.Generator-161"><span class="linenos">161</span></a> <span class="n">SUPPORTS_MEDIAN</span> <span class="o">=</span> <span class="kc">True</span>
|
|
</span><span id="Redshift.Generator-162"><a href="#Redshift.Generator-162"><span class="linenos">162</span></a>
|
|
</span><span id="Redshift.Generator-163"><a href="#Redshift.Generator-163"><span class="linenos">163</span></a> <span class="c1"># Redshift doesn't have `WITH` as part of their with_properties so we remove it</span>
|
|
</span><span id="Redshift.Generator-164"><a href="#Redshift.Generator-164"><span class="linenos">164</span></a> <span class="n">WITH_PROPERTIES_PREFIX</span> <span class="o">=</span> <span class="s2">" "</span>
|
|
</span><span id="Redshift.Generator-165"><a href="#Redshift.Generator-165"><span class="linenos">165</span></a>
|
|
</span><span id="Redshift.Generator-166"><a href="#Redshift.Generator-166"><span class="linenos">166</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="Redshift.Generator-167"><a href="#Redshift.Generator-167"><span class="linenos">167</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-168"><a href="#Redshift.Generator-168"><span class="linenos">168</span></a> <span class="n">exp</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="n">BINARY</span><span class="p">:</span> <span class="s2">"VARBYTE"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-169"><a href="#Redshift.Generator-169"><span class="linenos">169</span></a> <span class="n">exp</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="n">INT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-170"><a href="#Redshift.Generator-170"><span class="linenos">170</span></a> <span class="n">exp</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="n">TIMETZ</span><span class="p">:</span> <span class="s2">"TIME"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-171"><a href="#Redshift.Generator-171"><span class="linenos">171</span></a> <span class="n">exp</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="n">TIMESTAMPTZ</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-172"><a href="#Redshift.Generator-172"><span class="linenos">172</span></a> <span class="n">exp</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="n">VARBINARY</span><span class="p">:</span> <span class="s2">"VARBYTE"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-173"><a href="#Redshift.Generator-173"><span class="linenos">173</span></a> <span class="n">exp</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="n">ROWVERSION</span><span class="p">:</span> <span class="s2">"VARBYTE"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-174"><a href="#Redshift.Generator-174"><span class="linenos">174</span></a> <span class="p">}</span>
|
|
</span><span id="Redshift.Generator-175"><a href="#Redshift.Generator-175"><span class="linenos">175</span></a>
|
|
</span><span id="Redshift.Generator-176"><a href="#Redshift.Generator-176"><span class="linenos">176</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="Redshift.Generator-177"><a href="#Redshift.Generator-177"><span class="linenos">177</span></a> <span class="o">**</span><span class="n">Postgres</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-178"><a href="#Redshift.Generator-178"><span class="linenos">178</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">arrayconcat_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"ARRAY_CONCAT"</span><span class="p">),</span>
|
|
</span><span id="Redshift.Generator-179"><a href="#Redshift.Generator-179"><span class="linenos">179</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Concat</span><span class="p">:</span> <span class="n">concat_to_dpipe_sql</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-180"><a href="#Redshift.Generator-180"><span class="linenos">180</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ConcatWs</span><span class="p">:</span> <span class="n">concat_ws_to_dpipe_sql</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-181"><a href="#Redshift.Generator-181"><span class="linenos">181</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-182"><a href="#Redshift.Generator-182"><span class="linenos">182</span></a> <span class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"APPROXIMATE COUNT(DISTINCT </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-183"><a href="#Redshift.Generator-183"><span class="linenos">183</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="p">(</span>
|
|
</span><span id="Redshift.Generator-184"><a href="#Redshift.Generator-184"><span class="linenos">184</span></a> <span class="s2">"SYSDATE"</span> <span class="k">if</span> <span class="n">e</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">"sysdate"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"GETDATE()"</span>
|
|
</span><span id="Redshift.Generator-185"><a href="#Redshift.Generator-185"><span class="linenos">185</span></a> <span class="p">),</span>
|
|
</span><span id="Redshift.Generator-186"><a href="#Redshift.Generator-186"><span class="linenos">186</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">date_delta_sql</span><span class="p">(</span><span class="s2">"DATEADD"</span><span class="p">),</span>
|
|
</span><span id="Redshift.Generator-187"><a href="#Redshift.Generator-187"><span class="linenos">187</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">date_delta_sql</span><span class="p">(</span><span class="s2">"DATEDIFF"</span><span class="p">),</span>
|
|
</span><span id="Redshift.Generator-188"><a href="#Redshift.Generator-188"><span class="linenos">188</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistKeyProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"DISTKEY"</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span>
|
|
</span><span id="Redshift.Generator-189"><a href="#Redshift.Generator-189"><span class="linenos">189</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistStyleProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">naked_property</span><span class="p">(</span><span class="n">e</span><span class="p">),</span>
|
|
</span><span id="Redshift.Generator-190"><a href="#Redshift.Generator-190"><span class="linenos">190</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">explode_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span>
|
|
</span><span id="Redshift.Generator-191"><a href="#Redshift.Generator-191"><span class="linenos">191</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FromBase</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STRTOL"</span><span class="p">),</span>
|
|
</span><span id="Redshift.Generator-192"><a href="#Redshift.Generator-192"><span class="linenos">192</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span><span class="p">:</span> <span class="n">generatedasidentitycolumnconstraint_sql</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-193"><a href="#Redshift.Generator-193"><span class="linenos">193</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">json_extract_segments</span><span class="p">(</span><span class="s2">"JSON_EXTRACT_PATH_TEXT"</span><span class="p">),</span>
|
|
</span><span id="Redshift.Generator-194"><a href="#Redshift.Generator-194"><span class="linenos">194</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">json_extract_segments</span><span class="p">(</span><span class="s2">"JSON_EXTRACT_PATH_TEXT"</span><span class="p">),</span>
|
|
</span><span id="Redshift.Generator-195"><a href="#Redshift.Generator-195"><span class="linenos">195</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LISTAGG"</span><span class="p">),</span>
|
|
</span><span id="Redshift.Generator-196"><a href="#Redshift.Generator-196"><span class="linenos">196</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"UPPER"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TO_HEX"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))),</span>
|
|
</span><span id="Redshift.Generator-197"><a href="#Redshift.Generator-197"><span class="linenos">197</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">:</span> <span class="n">transforms</span><span class="o">.</span><span class="n">preprocess</span><span class="p">(</span>
|
|
</span><span id="Redshift.Generator-198"><a href="#Redshift.Generator-198"><span class="linenos">198</span></a> <span class="p">[</span>
|
|
</span><span id="Redshift.Generator-199"><a href="#Redshift.Generator-199"><span class="linenos">199</span></a> <span class="n">transforms</span><span class="o">.</span><span class="n">eliminate_distinct_on</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-200"><a href="#Redshift.Generator-200"><span class="linenos">200</span></a> <span class="n">transforms</span><span class="o">.</span><span class="n">eliminate_semi_and_anti_joins</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-201"><a href="#Redshift.Generator-201"><span class="linenos">201</span></a> <span class="n">transforms</span><span class="o">.</span><span class="n">unqualify_unnest</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-202"><a href="#Redshift.Generator-202"><span class="linenos">202</span></a> <span class="n">transforms</span><span class="o">.</span><span class="n">unnest_generate_date_array_using_recursive_cte</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-203"><a href="#Redshift.Generator-203"><span class="linenos">203</span></a> <span class="p">]</span>
|
|
</span><span id="Redshift.Generator-204"><a href="#Redshift.Generator-204"><span class="linenos">204</span></a> <span class="p">),</span>
|
|
</span><span id="Redshift.Generator-205"><a href="#Redshift.Generator-205"><span class="linenos">205</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortKeyProperty</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-206"><a href="#Redshift.Generator-206"><span class="linenos">206</span></a> <span class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'COMPOUND '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s1">'compound'</span><span class="p">]</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}</span><span class="s2">SORTKEY(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</span><span class="o">*</span><span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-207"><a href="#Redshift.Generator-207"><span class="linenos">207</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StartsWith</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-208"><a href="#Redshift.Generator-208"><span class="linenos">208</span></a> <span class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2"> LIKE </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> || '%'"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-209"><a href="#Redshift.Generator-209"><span class="linenos">209</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StringToArray</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SPLIT_TO_ARRAY"</span><span class="p">),</span>
|
|
</span><span id="Redshift.Generator-210"><a href="#Redshift.Generator-210"><span class="linenos">210</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableSample</span><span class="p">:</span> <span class="n">no_tablesample_sql</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-211"><a href="#Redshift.Generator-211"><span class="linenos">211</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">date_delta_sql</span><span class="p">(</span><span class="s2">"DATEADD"</span><span class="p">),</span>
|
|
</span><span id="Redshift.Generator-212"><a href="#Redshift.Generator-212"><span class="linenos">212</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsDiff</span><span class="p">:</span> <span class="n">date_delta_sql</span><span class="p">(</span><span class="s2">"DATEDIFF"</span><span class="p">),</span>
|
|
</span><span id="Redshift.Generator-213"><a href="#Redshift.Generator-213"><span class="linenos">213</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-214"><a href="#Redshift.Generator-214"><span class="linenos">214</span></a> <span class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"(TIMESTAMP 'epoch' + </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2"> * INTERVAL '1 SECOND')"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-215"><a href="#Redshift.Generator-215"><span class="linenos">215</span></a> <span class="p">}</span>
|
|
</span><span id="Redshift.Generator-216"><a href="#Redshift.Generator-216"><span class="linenos">216</span></a>
|
|
</span><span id="Redshift.Generator-217"><a href="#Redshift.Generator-217"><span class="linenos">217</span></a> <span class="c1"># Postgres maps exp.Pivot to no_pivot_sql, but Redshift support pivots</span>
|
|
</span><span id="Redshift.Generator-218"><a href="#Redshift.Generator-218"><span class="linenos">218</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Pivot</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-219"><a href="#Redshift.Generator-219"><span class="linenos">219</span></a>
|
|
</span><span id="Redshift.Generator-220"><a href="#Redshift.Generator-220"><span class="linenos">220</span></a> <span class="c1"># Postgres doesn't support JSON_PARSE, but Redshift does</span>
|
|
</span><span id="Redshift.Generator-221"><a href="#Redshift.Generator-221"><span class="linenos">221</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ParseJSON</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-222"><a href="#Redshift.Generator-222"><span class="linenos">222</span></a>
|
|
</span><span id="Redshift.Generator-223"><a href="#Redshift.Generator-223"><span class="linenos">223</span></a> <span class="c1"># Redshift uses the POW | POWER (expr1, expr2) syntax instead of expr1 ^ expr2 (postgres)</span>
|
|
</span><span id="Redshift.Generator-224"><a href="#Redshift.Generator-224"><span class="linenos">224</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Pow</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-225"><a href="#Redshift.Generator-225"><span class="linenos">225</span></a>
|
|
</span><span id="Redshift.Generator-226"><a href="#Redshift.Generator-226"><span class="linenos">226</span></a> <span class="c1"># Redshift supports these functions</span>
|
|
</span><span id="Redshift.Generator-227"><a href="#Redshift.Generator-227"><span class="linenos">227</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">AnyValue</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-228"><a href="#Redshift.Generator-228"><span class="linenos">228</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LastDay</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-229"><a href="#Redshift.Generator-229"><span class="linenos">229</span></a> <span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SHA2</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-230"><a href="#Redshift.Generator-230"><span class="linenos">230</span></a>
|
|
</span><span id="Redshift.Generator-231"><a href="#Redshift.Generator-231"><span class="linenos">231</span></a> <span class="n">RESERVED_KEYWORDS</span> <span class="o">=</span> <span class="p">{</span>
|
|
</span><span id="Redshift.Generator-232"><a href="#Redshift.Generator-232"><span class="linenos">232</span></a> <span class="s2">"aes128"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-233"><a href="#Redshift.Generator-233"><span class="linenos">233</span></a> <span class="s2">"aes256"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-234"><a href="#Redshift.Generator-234"><span class="linenos">234</span></a> <span class="s2">"all"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-235"><a href="#Redshift.Generator-235"><span class="linenos">235</span></a> <span class="s2">"allowoverwrite"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-236"><a href="#Redshift.Generator-236"><span class="linenos">236</span></a> <span class="s2">"analyse"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-237"><a href="#Redshift.Generator-237"><span class="linenos">237</span></a> <span class="s2">"analyze"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-238"><a href="#Redshift.Generator-238"><span class="linenos">238</span></a> <span class="s2">"and"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-239"><a href="#Redshift.Generator-239"><span class="linenos">239</span></a> <span class="s2">"any"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-240"><a href="#Redshift.Generator-240"><span class="linenos">240</span></a> <span class="s2">"array"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-241"><a href="#Redshift.Generator-241"><span class="linenos">241</span></a> <span class="s2">"as"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-242"><a href="#Redshift.Generator-242"><span class="linenos">242</span></a> <span class="s2">"asc"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-243"><a href="#Redshift.Generator-243"><span class="linenos">243</span></a> <span class="s2">"authorization"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-244"><a href="#Redshift.Generator-244"><span class="linenos">244</span></a> <span class="s2">"az64"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-245"><a href="#Redshift.Generator-245"><span class="linenos">245</span></a> <span class="s2">"backup"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-246"><a href="#Redshift.Generator-246"><span class="linenos">246</span></a> <span class="s2">"between"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-247"><a href="#Redshift.Generator-247"><span class="linenos">247</span></a> <span class="s2">"binary"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-248"><a href="#Redshift.Generator-248"><span class="linenos">248</span></a> <span class="s2">"blanksasnull"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-249"><a href="#Redshift.Generator-249"><span class="linenos">249</span></a> <span class="s2">"both"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-250"><a href="#Redshift.Generator-250"><span class="linenos">250</span></a> <span class="s2">"bytedict"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-251"><a href="#Redshift.Generator-251"><span class="linenos">251</span></a> <span class="s2">"bzip2"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-252"><a href="#Redshift.Generator-252"><span class="linenos">252</span></a> <span class="s2">"case"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-253"><a href="#Redshift.Generator-253"><span class="linenos">253</span></a> <span class="s2">"cast"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-254"><a href="#Redshift.Generator-254"><span class="linenos">254</span></a> <span class="s2">"check"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-255"><a href="#Redshift.Generator-255"><span class="linenos">255</span></a> <span class="s2">"collate"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-256"><a href="#Redshift.Generator-256"><span class="linenos">256</span></a> <span class="s2">"column"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-257"><a href="#Redshift.Generator-257"><span class="linenos">257</span></a> <span class="s2">"constraint"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-258"><a href="#Redshift.Generator-258"><span class="linenos">258</span></a> <span class="s2">"create"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-259"><a href="#Redshift.Generator-259"><span class="linenos">259</span></a> <span class="s2">"credentials"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-260"><a href="#Redshift.Generator-260"><span class="linenos">260</span></a> <span class="s2">"cross"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-261"><a href="#Redshift.Generator-261"><span class="linenos">261</span></a> <span class="s2">"current_date"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-262"><a href="#Redshift.Generator-262"><span class="linenos">262</span></a> <span class="s2">"current_time"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-263"><a href="#Redshift.Generator-263"><span class="linenos">263</span></a> <span class="s2">"current_timestamp"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-264"><a href="#Redshift.Generator-264"><span class="linenos">264</span></a> <span class="s2">"current_user"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-265"><a href="#Redshift.Generator-265"><span class="linenos">265</span></a> <span class="s2">"current_user_id"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-266"><a href="#Redshift.Generator-266"><span class="linenos">266</span></a> <span class="s2">"default"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-267"><a href="#Redshift.Generator-267"><span class="linenos">267</span></a> <span class="s2">"deferrable"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-268"><a href="#Redshift.Generator-268"><span class="linenos">268</span></a> <span class="s2">"deflate"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-269"><a href="#Redshift.Generator-269"><span class="linenos">269</span></a> <span class="s2">"defrag"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-270"><a href="#Redshift.Generator-270"><span class="linenos">270</span></a> <span class="s2">"delta"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-271"><a href="#Redshift.Generator-271"><span class="linenos">271</span></a> <span class="s2">"delta32k"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-272"><a href="#Redshift.Generator-272"><span class="linenos">272</span></a> <span class="s2">"desc"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-273"><a href="#Redshift.Generator-273"><span class="linenos">273</span></a> <span class="s2">"disable"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-274"><a href="#Redshift.Generator-274"><span class="linenos">274</span></a> <span class="s2">"distinct"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-275"><a href="#Redshift.Generator-275"><span class="linenos">275</span></a> <span class="s2">"do"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-276"><a href="#Redshift.Generator-276"><span class="linenos">276</span></a> <span class="s2">"else"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-277"><a href="#Redshift.Generator-277"><span class="linenos">277</span></a> <span class="s2">"emptyasnull"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-278"><a href="#Redshift.Generator-278"><span class="linenos">278</span></a> <span class="s2">"enable"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-279"><a href="#Redshift.Generator-279"><span class="linenos">279</span></a> <span class="s2">"encode"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-280"><a href="#Redshift.Generator-280"><span class="linenos">280</span></a> <span class="s2">"encrypt "</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-281"><a href="#Redshift.Generator-281"><span class="linenos">281</span></a> <span class="s2">"encryption"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-282"><a href="#Redshift.Generator-282"><span class="linenos">282</span></a> <span class="s2">"end"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-283"><a href="#Redshift.Generator-283"><span class="linenos">283</span></a> <span class="s2">"except"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-284"><a href="#Redshift.Generator-284"><span class="linenos">284</span></a> <span class="s2">"explicit"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-285"><a href="#Redshift.Generator-285"><span class="linenos">285</span></a> <span class="s2">"false"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-286"><a href="#Redshift.Generator-286"><span class="linenos">286</span></a> <span class="s2">"for"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-287"><a href="#Redshift.Generator-287"><span class="linenos">287</span></a> <span class="s2">"foreign"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-288"><a href="#Redshift.Generator-288"><span class="linenos">288</span></a> <span class="s2">"freeze"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-289"><a href="#Redshift.Generator-289"><span class="linenos">289</span></a> <span class="s2">"from"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-290"><a href="#Redshift.Generator-290"><span class="linenos">290</span></a> <span class="s2">"full"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-291"><a href="#Redshift.Generator-291"><span class="linenos">291</span></a> <span class="s2">"globaldict256"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-292"><a href="#Redshift.Generator-292"><span class="linenos">292</span></a> <span class="s2">"globaldict64k"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-293"><a href="#Redshift.Generator-293"><span class="linenos">293</span></a> <span class="s2">"grant"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-294"><a href="#Redshift.Generator-294"><span class="linenos">294</span></a> <span class="s2">"group"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-295"><a href="#Redshift.Generator-295"><span class="linenos">295</span></a> <span class="s2">"gzip"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-296"><a href="#Redshift.Generator-296"><span class="linenos">296</span></a> <span class="s2">"having"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-297"><a href="#Redshift.Generator-297"><span class="linenos">297</span></a> <span class="s2">"identity"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-298"><a href="#Redshift.Generator-298"><span class="linenos">298</span></a> <span class="s2">"ignore"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-299"><a href="#Redshift.Generator-299"><span class="linenos">299</span></a> <span class="s2">"ilike"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-300"><a href="#Redshift.Generator-300"><span class="linenos">300</span></a> <span class="s2">"in"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-301"><a href="#Redshift.Generator-301"><span class="linenos">301</span></a> <span class="s2">"initially"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-302"><a href="#Redshift.Generator-302"><span class="linenos">302</span></a> <span class="s2">"inner"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-303"><a href="#Redshift.Generator-303"><span class="linenos">303</span></a> <span class="s2">"intersect"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-304"><a href="#Redshift.Generator-304"><span class="linenos">304</span></a> <span class="s2">"interval"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-305"><a href="#Redshift.Generator-305"><span class="linenos">305</span></a> <span class="s2">"into"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-306"><a href="#Redshift.Generator-306"><span class="linenos">306</span></a> <span class="s2">"is"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-307"><a href="#Redshift.Generator-307"><span class="linenos">307</span></a> <span class="s2">"isnull"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-308"><a href="#Redshift.Generator-308"><span class="linenos">308</span></a> <span class="s2">"join"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-309"><a href="#Redshift.Generator-309"><span class="linenos">309</span></a> <span class="s2">"leading"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-310"><a href="#Redshift.Generator-310"><span class="linenos">310</span></a> <span class="s2">"left"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-311"><a href="#Redshift.Generator-311"><span class="linenos">311</span></a> <span class="s2">"like"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-312"><a href="#Redshift.Generator-312"><span class="linenos">312</span></a> <span class="s2">"limit"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-313"><a href="#Redshift.Generator-313"><span class="linenos">313</span></a> <span class="s2">"localtime"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-314"><a href="#Redshift.Generator-314"><span class="linenos">314</span></a> <span class="s2">"localtimestamp"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-315"><a href="#Redshift.Generator-315"><span class="linenos">315</span></a> <span class="s2">"lun"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-316"><a href="#Redshift.Generator-316"><span class="linenos">316</span></a> <span class="s2">"luns"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-317"><a href="#Redshift.Generator-317"><span class="linenos">317</span></a> <span class="s2">"lzo"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-318"><a href="#Redshift.Generator-318"><span class="linenos">318</span></a> <span class="s2">"lzop"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-319"><a href="#Redshift.Generator-319"><span class="linenos">319</span></a> <span class="s2">"minus"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-320"><a href="#Redshift.Generator-320"><span class="linenos">320</span></a> <span class="s2">"mostly16"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-321"><a href="#Redshift.Generator-321"><span class="linenos">321</span></a> <span class="s2">"mostly32"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-322"><a href="#Redshift.Generator-322"><span class="linenos">322</span></a> <span class="s2">"mostly8"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-323"><a href="#Redshift.Generator-323"><span class="linenos">323</span></a> <span class="s2">"natural"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-324"><a href="#Redshift.Generator-324"><span class="linenos">324</span></a> <span class="s2">"new"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-325"><a href="#Redshift.Generator-325"><span class="linenos">325</span></a> <span class="s2">"not"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-326"><a href="#Redshift.Generator-326"><span class="linenos">326</span></a> <span class="s2">"notnull"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-327"><a href="#Redshift.Generator-327"><span class="linenos">327</span></a> <span class="s2">"null"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-328"><a href="#Redshift.Generator-328"><span class="linenos">328</span></a> <span class="s2">"nulls"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-329"><a href="#Redshift.Generator-329"><span class="linenos">329</span></a> <span class="s2">"off"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-330"><a href="#Redshift.Generator-330"><span class="linenos">330</span></a> <span class="s2">"offline"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-331"><a href="#Redshift.Generator-331"><span class="linenos">331</span></a> <span class="s2">"offset"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-332"><a href="#Redshift.Generator-332"><span class="linenos">332</span></a> <span class="s2">"oid"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-333"><a href="#Redshift.Generator-333"><span class="linenos">333</span></a> <span class="s2">"old"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-334"><a href="#Redshift.Generator-334"><span class="linenos">334</span></a> <span class="s2">"on"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-335"><a href="#Redshift.Generator-335"><span class="linenos">335</span></a> <span class="s2">"only"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-336"><a href="#Redshift.Generator-336"><span class="linenos">336</span></a> <span class="s2">"open"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-337"><a href="#Redshift.Generator-337"><span class="linenos">337</span></a> <span class="s2">"or"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-338"><a href="#Redshift.Generator-338"><span class="linenos">338</span></a> <span class="s2">"order"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-339"><a href="#Redshift.Generator-339"><span class="linenos">339</span></a> <span class="s2">"outer"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-340"><a href="#Redshift.Generator-340"><span class="linenos">340</span></a> <span class="s2">"overlaps"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-341"><a href="#Redshift.Generator-341"><span class="linenos">341</span></a> <span class="s2">"parallel"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-342"><a href="#Redshift.Generator-342"><span class="linenos">342</span></a> <span class="s2">"partition"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-343"><a href="#Redshift.Generator-343"><span class="linenos">343</span></a> <span class="s2">"percent"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-344"><a href="#Redshift.Generator-344"><span class="linenos">344</span></a> <span class="s2">"permissions"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-345"><a href="#Redshift.Generator-345"><span class="linenos">345</span></a> <span class="s2">"pivot"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-346"><a href="#Redshift.Generator-346"><span class="linenos">346</span></a> <span class="s2">"placing"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-347"><a href="#Redshift.Generator-347"><span class="linenos">347</span></a> <span class="s2">"primary"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-348"><a href="#Redshift.Generator-348"><span class="linenos">348</span></a> <span class="s2">"raw"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-349"><a href="#Redshift.Generator-349"><span class="linenos">349</span></a> <span class="s2">"readratio"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-350"><a href="#Redshift.Generator-350"><span class="linenos">350</span></a> <span class="s2">"recover"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-351"><a href="#Redshift.Generator-351"><span class="linenos">351</span></a> <span class="s2">"references"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-352"><a href="#Redshift.Generator-352"><span class="linenos">352</span></a> <span class="s2">"rejectlog"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-353"><a href="#Redshift.Generator-353"><span class="linenos">353</span></a> <span class="s2">"resort"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-354"><a href="#Redshift.Generator-354"><span class="linenos">354</span></a> <span class="s2">"respect"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-355"><a href="#Redshift.Generator-355"><span class="linenos">355</span></a> <span class="s2">"restore"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-356"><a href="#Redshift.Generator-356"><span class="linenos">356</span></a> <span class="s2">"right"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-357"><a href="#Redshift.Generator-357"><span class="linenos">357</span></a> <span class="s2">"select"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-358"><a href="#Redshift.Generator-358"><span class="linenos">358</span></a> <span class="s2">"session_user"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-359"><a href="#Redshift.Generator-359"><span class="linenos">359</span></a> <span class="s2">"similar"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-360"><a href="#Redshift.Generator-360"><span class="linenos">360</span></a> <span class="s2">"snapshot"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-361"><a href="#Redshift.Generator-361"><span class="linenos">361</span></a> <span class="s2">"some"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-362"><a href="#Redshift.Generator-362"><span class="linenos">362</span></a> <span class="s2">"sysdate"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-363"><a href="#Redshift.Generator-363"><span class="linenos">363</span></a> <span class="s2">"system"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-364"><a href="#Redshift.Generator-364"><span class="linenos">364</span></a> <span class="s2">"table"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-365"><a href="#Redshift.Generator-365"><span class="linenos">365</span></a> <span class="s2">"tag"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-366"><a href="#Redshift.Generator-366"><span class="linenos">366</span></a> <span class="s2">"tdes"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-367"><a href="#Redshift.Generator-367"><span class="linenos">367</span></a> <span class="s2">"text255"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-368"><a href="#Redshift.Generator-368"><span class="linenos">368</span></a> <span class="s2">"text32k"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-369"><a href="#Redshift.Generator-369"><span class="linenos">369</span></a> <span class="s2">"then"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-370"><a href="#Redshift.Generator-370"><span class="linenos">370</span></a> <span class="s2">"timestamp"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-371"><a href="#Redshift.Generator-371"><span class="linenos">371</span></a> <span class="s2">"to"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-372"><a href="#Redshift.Generator-372"><span class="linenos">372</span></a> <span class="s2">"top"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-373"><a href="#Redshift.Generator-373"><span class="linenos">373</span></a> <span class="s2">"trailing"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-374"><a href="#Redshift.Generator-374"><span class="linenos">374</span></a> <span class="s2">"true"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-375"><a href="#Redshift.Generator-375"><span class="linenos">375</span></a> <span class="s2">"truncatecolumns"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-376"><a href="#Redshift.Generator-376"><span class="linenos">376</span></a> <span class="s2">"type"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-377"><a href="#Redshift.Generator-377"><span class="linenos">377</span></a> <span class="s2">"union"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-378"><a href="#Redshift.Generator-378"><span class="linenos">378</span></a> <span class="s2">"unique"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-379"><a href="#Redshift.Generator-379"><span class="linenos">379</span></a> <span class="s2">"unnest"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-380"><a href="#Redshift.Generator-380"><span class="linenos">380</span></a> <span class="s2">"unpivot"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-381"><a href="#Redshift.Generator-381"><span class="linenos">381</span></a> <span class="s2">"user"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-382"><a href="#Redshift.Generator-382"><span class="linenos">382</span></a> <span class="s2">"using"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-383"><a href="#Redshift.Generator-383"><span class="linenos">383</span></a> <span class="s2">"verbose"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-384"><a href="#Redshift.Generator-384"><span class="linenos">384</span></a> <span class="s2">"wallet"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-385"><a href="#Redshift.Generator-385"><span class="linenos">385</span></a> <span class="s2">"when"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-386"><a href="#Redshift.Generator-386"><span class="linenos">386</span></a> <span class="s2">"where"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-387"><a href="#Redshift.Generator-387"><span class="linenos">387</span></a> <span class="s2">"with"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-388"><a href="#Redshift.Generator-388"><span class="linenos">388</span></a> <span class="s2">"without"</span><span class="p">,</span>
|
|
</span><span id="Redshift.Generator-389"><a href="#Redshift.Generator-389"><span class="linenos">389</span></a> <span class="p">}</span>
|
|
</span><span id="Redshift.Generator-390"><a href="#Redshift.Generator-390"><span class="linenos">390</span></a>
|
|
</span><span id="Redshift.Generator-391"><a href="#Redshift.Generator-391"><span class="linenos">391</span></a> <span class="k">def</span> <span class="nf">unnest_sql</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">exp</span><span class="o">.</span><span class="n">Unnest</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator-392"><a href="#Redshift.Generator-392"><span class="linenos">392</span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span>
|
|
</span><span id="Redshift.Generator-393"><a href="#Redshift.Generator-393"><span class="linenos">393</span></a> <span class="n">num_args</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-394"><a href="#Redshift.Generator-394"><span class="linenos">394</span></a>
|
|
</span><span id="Redshift.Generator-395"><a href="#Redshift.Generator-395"><span class="linenos">395</span></a> <span class="k">if</span> <span class="n">num_args</span> <span class="o">!=</span> <span class="mi">1</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator-396"><a href="#Redshift.Generator-396"><span class="linenos">396</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported number of arguments in UNNEST: </span><span class="si">{</span><span class="n">num_args</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-397"><a href="#Redshift.Generator-397"><span class="linenos">397</span></a> <span class="k">return</span> <span class="s2">""</span>
|
|
</span><span id="Redshift.Generator-398"><a href="#Redshift.Generator-398"><span class="linenos">398</span></a>
|
|
</span><span id="Redshift.Generator-399"><a href="#Redshift.Generator-399"><span class="linenos">399</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">):</span>
|
|
</span><span id="Redshift.Generator-400"><a href="#Redshift.Generator-400"><span class="linenos">400</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported UNNEST when not used in FROM/JOIN clauses"</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-401"><a href="#Redshift.Generator-401"><span class="linenos">401</span></a> <span class="k">return</span> <span class="s2">""</span>
|
|
</span><span id="Redshift.Generator-402"><a href="#Redshift.Generator-402"><span class="linenos">402</span></a>
|
|
</span><span id="Redshift.Generator-403"><a href="#Redshift.Generator-403"><span class="linenos">403</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
|
|
</span><span id="Redshift.Generator-404"><a href="#Redshift.Generator-404"><span class="linenos">404</span></a>
|
|
</span><span id="Redshift.Generator-405"><a href="#Redshift.Generator-405"><span class="linenos">405</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">),</span> <span class="n">key</span><span class="o">=</span><span class="s2">"columns"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-406"><a href="#Redshift.Generator-406"><span class="linenos">406</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">arg</span><span class="si">}</span><span class="s2"> AS </span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="n">arg</span>
|
|
</span><span id="Redshift.Generator-407"><a href="#Redshift.Generator-407"><span class="linenos">407</span></a>
|
|
</span><span id="Redshift.Generator-408"><a href="#Redshift.Generator-408"><span class="linenos">408</span></a> <span class="k">def</span> <span class="nf">cast_sql</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">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">,</span> <span class="n">safe_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 class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator-409"><a href="#Redshift.Generator-409"><span class="linenos">409</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">exp</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="n">JSON</span><span class="p">):</span>
|
|
</span><span id="Redshift.Generator-410"><a href="#Redshift.Generator-410"><span class="linenos">410</span></a> <span class="c1"># Redshift doesn't support a JSON type, so casting to it is treated as a noop</span>
|
|
</span><span id="Redshift.Generator-411"><a href="#Redshift.Generator-411"><span class="linenos">411</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 class="n">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-412"><a href="#Redshift.Generator-412"><span class="linenos">412</span></a>
|
|
</span><span id="Redshift.Generator-413"><a href="#Redshift.Generator-413"><span class="linenos">413</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">cast_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">safe_prefix</span><span class="o">=</span><span class="n">safe_prefix</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-414"><a href="#Redshift.Generator-414"><span class="linenos">414</span></a>
|
|
</span><span id="Redshift.Generator-415"><a href="#Redshift.Generator-415"><span class="linenos">415</span></a> <span class="k">def</span> <span class="nf">datatype_sql</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">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator-416"><a href="#Redshift.Generator-416"><span class="linenos">416</span></a><span class="w"> </span><span class="sd">"""</span>
|
|
</span><span id="Redshift.Generator-417"><a href="#Redshift.Generator-417"><span class="linenos">417</span></a><span class="sd"> Redshift converts the `TEXT` data type to `VARCHAR(255)` by default when people more generally mean</span>
|
|
</span><span id="Redshift.Generator-418"><a href="#Redshift.Generator-418"><span class="linenos">418</span></a><span class="sd"> VARCHAR of max length which is `VARCHAR(max)` in Redshift. Therefore if we get a `TEXT` data type</span>
|
|
</span><span id="Redshift.Generator-419"><a href="#Redshift.Generator-419"><span class="linenos">419</span></a><span class="sd"> without precision we convert it to `VARCHAR(max)` and if it does have precision then we just convert</span>
|
|
</span><span id="Redshift.Generator-420"><a href="#Redshift.Generator-420"><span class="linenos">420</span></a><span class="sd"> `TEXT` to `VARCHAR`.</span>
|
|
</span><span id="Redshift.Generator-421"><a href="#Redshift.Generator-421"><span class="linenos">421</span></a><span class="sd"> """</span>
|
|
</span><span id="Redshift.Generator-422"><a href="#Redshift.Generator-422"><span class="linenos">422</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="s2">"text"</span><span class="p">):</span>
|
|
</span><span id="Redshift.Generator-423"><a href="#Redshift.Generator-423"><span class="linenos">423</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"this"</span><span class="p">,</span> <span class="n">exp</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="n">VARCHAR</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-424"><a href="#Redshift.Generator-424"><span class="linenos">424</span></a> <span class="n">precision</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-425"><a href="#Redshift.Generator-425"><span class="linenos">425</span></a>
|
|
</span><span id="Redshift.Generator-426"><a href="#Redshift.Generator-426"><span class="linenos">426</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">precision</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator-427"><a href="#Redshift.Generator-427"><span class="linenos">427</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="s2">"MAX"</span><span class="p">))</span>
|
|
</span><span id="Redshift.Generator-428"><a href="#Redshift.Generator-428"><span class="linenos">428</span></a>
|
|
</span><span id="Redshift.Generator-429"><a href="#Redshift.Generator-429"><span class="linenos">429</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">datatype_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-430"><a href="#Redshift.Generator-430"><span class="linenos">430</span></a>
|
|
</span><span id="Redshift.Generator-431"><a href="#Redshift.Generator-431"><span class="linenos">431</span></a> <span class="k">def</span> <span class="nf">alterset_sql</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">exp</span><span class="o">.</span><span class="n">AlterSet</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator-432"><a href="#Redshift.Generator-432"><span class="linenos">432</span></a> <span class="n">exprs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-433"><a href="#Redshift.Generator-433"><span class="linenos">433</span></a> <span class="n">exprs</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" TABLE PROPERTIES (</span><span class="si">{</span><span class="n">exprs</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">exprs</span> <span class="k">else</span> <span class="s2">""</span>
|
|
</span><span id="Redshift.Generator-434"><a href="#Redshift.Generator-434"><span class="linenos">434</span></a> <span class="n">location</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"location"</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-435"><a href="#Redshift.Generator-435"><span class="linenos">435</span></a> <span class="n">location</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" LOCATION </span><span class="si">{</span><span class="n">location</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">location</span> <span class="k">else</span> <span class="s2">""</span>
|
|
</span><span id="Redshift.Generator-436"><a href="#Redshift.Generator-436"><span class="linenos">436</span></a> <span class="n">file_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">"file_format"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-437"><a href="#Redshift.Generator-437"><span class="linenos">437</span></a> <span class="n">file_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FILE FORMAT </span><span class="si">{</span><span class="n">file_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">file_format</span> <span class="k">else</span> <span class="s2">""</span>
|
|
</span><span id="Redshift.Generator-438"><a href="#Redshift.Generator-438"><span class="linenos">438</span></a>
|
|
</span><span id="Redshift.Generator-439"><a href="#Redshift.Generator-439"><span class="linenos">439</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SET</span><span class="si">{</span><span class="n">exprs</span><span class="si">}{</span><span class="n">location</span><span class="si">}{</span><span class="n">file_format</span><span class="si">}</span><span class="s2">"</span>
|
|
</span><span id="Redshift.Generator-440"><a href="#Redshift.Generator-440"><span class="linenos">440</span></a>
|
|
</span><span id="Redshift.Generator-441"><a href="#Redshift.Generator-441"><span class="linenos">441</span></a> <span class="k">def</span> <span class="nf">array_sql</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">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator-442"><a href="#Redshift.Generator-442"><span class="linenos">442</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"bracket_notation"</span><span class="p">):</span>
|
|
</span><span id="Redshift.Generator-443"><a href="#Redshift.Generator-443"><span class="linenos">443</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">array_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-444"><a href="#Redshift.Generator-444"><span class="linenos">444</span></a>
|
|
</span><span id="Redshift.Generator-445"><a href="#Redshift.Generator-445"><span class="linenos">445</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY"</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="Redshift.Generator-446"><a href="#Redshift.Generator-446"><span class="linenos">446</span></a>
|
|
</span><span id="Redshift.Generator-447"><a href="#Redshift.Generator-447"><span class="linenos">447</span></a> <span class="k">def</span> <span class="nf">explode_sql</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">exp</span><span class="o">.</span><span class="n">Explode</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator-448"><a href="#Redshift.Generator-448"><span class="linenos">448</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported EXPLODE() function"</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator-449"><a href="#Redshift.Generator-449"><span class="linenos">449</span></a> <span class="k">return</span> <span class="s2">""</span>
|
|
</span></pre></div>
|
|
|
|
|
|
<div class="docstring"><p>Generator converts a given syntax tree to the corresponding SQL string.</p>
|
|
|
|
<h6 id="arguments">Arguments:</h6>
|
|
|
|
<ul>
|
|
<li><strong>pretty:</strong> Whether to format the produced SQL string.
|
|
Default: False.</li>
|
|
<li><strong>identify:</strong> Determines when an identifier should be quoted. Possible values are:
|
|
False (default): Never quote, except in cases where it's mandatory by the dialect.
|
|
True or 'always': Always quote.
|
|
'safe': Only quote identifiers that are case insensitive.</li>
|
|
<li><strong>normalize:</strong> Whether to normalize identifiers to lowercase.
|
|
Default: False.</li>
|
|
<li><strong>pad:</strong> The pad size in a formatted string. For example, this affects the indentation of
|
|
a projection in a query, relative to its nesting level.
|
|
Default: 2.</li>
|
|
<li><strong>indent:</strong> The indentation size in a formatted string. For example, this affects the
|
|
indentation of subqueries and filters under a <code>WHERE</code> clause.
|
|
Default: 2.</li>
|
|
<li><strong>normalize_functions:</strong> How to normalize function names. Possible values are:
|
|
"upper" or True (default): Convert names to uppercase.
|
|
"lower": Convert names to lowercase.
|
|
False: Disables function name normalization.</li>
|
|
<li><strong>unsupported_level:</strong> Determines the generator's behavior when it encounters unsupported expressions.
|
|
Default ErrorLevel.WARN.</li>
|
|
<li><strong>max_unsupported:</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.
|
|
This is only relevant if unsupported_level is ErrorLevel.RAISE.
|
|
Default: 3</li>
|
|
<li><strong>leading_comma:</strong> Whether the comma is leading or trailing in select expressions.
|
|
This is only relevant when generating in pretty mode.
|
|
Default: False</li>
|
|
<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.
|
|
The default is on the smaller end because the length only represents a segment and not the true
|
|
line length.
|
|
Default: 80</li>
|
|
<li><strong>comments:</strong> Whether to preserve comments in the output SQL code.
|
|
Default: True</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<div id="Redshift.Generator.LOCKING_READS_SUPPORTED" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">LOCKING_READS_SUPPORTED</span> =
|
|
<span class="default_value">False</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.LOCKING_READS_SUPPORTED"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.QUERY_HINTS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">QUERY_HINTS</span> =
|
|
<span class="default_value">False</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.QUERY_HINTS"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.VALUES_AS_TABLE" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">VALUES_AS_TABLE</span> =
|
|
<span class="default_value">False</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.VALUES_AS_TABLE"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.TZ_TO_WITH_TIME_ZONE" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">TZ_TO_WITH_TIME_ZONE</span> =
|
|
<span class="default_value">True</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.TZ_TO_WITH_TIME_ZONE"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.NVL2_SUPPORTED" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">NVL2_SUPPORTED</span> =
|
|
<span class="default_value">True</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.NVL2_SUPPORTED"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.LAST_DAY_SUPPORTS_DATE_PART" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">LAST_DAY_SUPPORTS_DATE_PART</span> =
|
|
<span class="default_value">False</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.LAST_DAY_SUPPORTS_DATE_PART"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.CAN_IMPLEMENT_ARRAY_ANY" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">CAN_IMPLEMENT_ARRAY_ANY</span> =
|
|
<span class="default_value">False</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.CAN_IMPLEMENT_ARRAY_ANY"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.MULTI_ARG_DISTINCT" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">MULTI_ARG_DISTINCT</span> =
|
|
<span class="default_value">True</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.MULTI_ARG_DISTINCT"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.COPY_PARAMS_ARE_WRAPPED" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">COPY_PARAMS_ARE_WRAPPED</span> =
|
|
<span class="default_value">False</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.COPY_PARAMS_ARE_WRAPPED"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.HEX_FUNC" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">HEX_FUNC</span> =
|
|
<span class="default_value">'TO_HEX'</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.HEX_FUNC"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.PARSE_JSON_NAME" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">PARSE_JSON_NAME</span> =
|
|
<span class="default_value">'JSON_PARSE'</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.PARSE_JSON_NAME"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.ARRAY_CONCAT_IS_VAR_LEN" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">ARRAY_CONCAT_IS_VAR_LEN</span> =
|
|
<span class="default_value">False</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.ARRAY_CONCAT_IS_VAR_LEN"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.SUPPORTS_CONVERT_TIMEZONE" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">SUPPORTS_CONVERT_TIMEZONE</span> =
|
|
<span class="default_value">True</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.SUPPORTS_CONVERT_TIMEZONE"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.EXCEPT_INTERSECT_SUPPORT_ALL_CLAUSE" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">EXCEPT_INTERSECT_SUPPORT_ALL_CLAUSE</span> =
|
|
<span class="default_value">False</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.EXCEPT_INTERSECT_SUPPORT_ALL_CLAUSE"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.SUPPORTS_MEDIAN" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">SUPPORTS_MEDIAN</span> =
|
|
<span class="default_value">True</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.SUPPORTS_MEDIAN"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.WITH_PROPERTIES_PREFIX" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">WITH_PROPERTIES_PREFIX</span> =
|
|
<span class="default_value">' '</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.WITH_PROPERTIES_PREFIX"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.TYPE_MAPPING" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">TYPE_MAPPING</span> =
|
|
<input id="Redshift.Generator.TYPE_MAPPING-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.Generator.TYPE_MAPPING-view-value"></label><span class="default_value">{<Type.NCHAR: 'NCHAR'>: 'CHAR', <Type.NVARCHAR: 'NVARCHAR'>: 'VARCHAR', <Type.MEDIUMTEXT: 'MEDIUMTEXT'>: 'TEXT', <Type.LONGTEXT: 'LONGTEXT'>: 'TEXT', <Type.TINYTEXT: 'TINYTEXT'>: 'TEXT', <Type.MEDIUMBLOB: 'MEDIUMBLOB'>: 'BLOB', <Type.LONGBLOB: 'LONGBLOB'>: 'BLOB', <Type.TINYBLOB: 'TINYBLOB'>: 'BLOB', <Type.INET: 'INET'>: 'INET', <Type.ROWVERSION: 'ROWVERSION'>: 'VARBYTE', <Type.TINYINT: 'TINYINT'>: 'SMALLINT', <Type.FLOAT: 'FLOAT'>: 'REAL', <Type.DOUBLE: 'DOUBLE'>: 'DOUBLE PRECISION', <Type.BINARY: 'BINARY'>: 'VARBYTE', <Type.VARBINARY: 'VARBINARY'>: 'VARBYTE', <Type.DATETIME: 'DATETIME'>: 'TIMESTAMP', <Type.INT: 'INT'>: 'INTEGER', <Type.TIMETZ: 'TIMETZ'>: 'TIME', <Type.TIMESTAMPTZ: 'TIMESTAMPTZ'>: 'TIMESTAMP'}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.TYPE_MAPPING"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.TRANSFORMS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">TRANSFORMS</span> =
|
|
<input id="Redshift.Generator.TRANSFORMS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.Generator.TRANSFORMS-view-value"></label><span class="default_value">{<class '<a href="../expressions.html#JSONPathKey">sqlglot.expressions.JSONPathKey</a>'>: <function json_path_key_only_name>, <class '<a href="../expressions.html#JSONPathRoot">sqlglot.expressions.JSONPathRoot</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#JSONPathSubscript">sqlglot.expressions.JSONPathSubscript</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#AllowedValuesProperty">sqlglot.expressions.AllowedValuesProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#ArrayContainsAll">sqlglot.expressions.ArrayContainsAll</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#ArrayOverlaps">sqlglot.expressions.ArrayOverlaps</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#AutoRefreshProperty">sqlglot.expressions.AutoRefreshProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#BackupProperty">sqlglot.expressions.BackupProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#CaseSpecificColumnConstraint">sqlglot.expressions.CaseSpecificColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#CharacterSetColumnConstraint">sqlglot.expressions.CharacterSetColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#CharacterSetProperty">sqlglot.expressions.CharacterSetProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#ClusteredColumnConstraint">sqlglot.expressions.ClusteredColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#CollateColumnConstraint">sqlglot.expressions.CollateColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#ConnectByRoot">sqlglot.expressions.ConnectByRoot</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#CopyGrantsProperty">sqlglot.expressions.CopyGrantsProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#DateFormatColumnConstraint">sqlglot.expressions.DateFormatColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#DefaultColumnConstraint">sqlglot.expressions.DefaultColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#DynamicProperty">sqlglot.expressions.DynamicProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#EmptyProperty">sqlglot.expressions.EmptyProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#EncodeColumnConstraint">sqlglot.expressions.EncodeColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#EphemeralColumnConstraint">sqlglot.expressions.EphemeralColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#ExcludeColumnConstraint">sqlglot.expressions.ExcludeColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#ExecuteAsProperty">sqlglot.expressions.ExecuteAsProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#Except">sqlglot.expressions.Except</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#ExternalProperty">sqlglot.expressions.ExternalProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#GlobalProperty">sqlglot.expressions.GlobalProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#HeapProperty">sqlglot.expressions.HeapProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#IcebergProperty">sqlglot.expressions.IcebergProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#InheritsProperty">sqlglot.expressions.InheritsProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#InlineLengthColumnConstraint">sqlglot.expressions.InlineLengthColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#InputModelProperty">sqlglot.expressions.InputModelProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#Intersect">sqlglot.expressions.Intersect</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#IntervalSpan">sqlglot.expressions.IntervalSpan</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#Int64">sqlglot.expressions.Int64</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#LanguageProperty">sqlglot.expressions.LanguageProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#LocationProperty">sqlglot.expressions.LocationProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#LogProperty">sqlglot.expressions.LogProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#MaterializedProperty">sqlglot.expressions.MaterializedProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#NonClusteredColumnConstraint">sqlglot.expressions.NonClusteredColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#NoPrimaryIndexProperty">sqlglot.expressions.NoPrimaryIndexProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#NotForReplicationColumnConstraint">sqlglot.expressions.NotForReplicationColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#OnCommitProperty">sqlglot.expressions.OnCommitProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#OnProperty">sqlglot.expressions.OnProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#OnUpdateColumnConstraint">sqlglot.expressions.OnUpdateColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#Operator">sqlglot.expressions.Operator</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#OutputModelProperty">sqlglot.expressions.OutputModelProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#PathColumnConstraint">sqlglot.expressions.PathColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#PivotAny">sqlglot.expressions.PivotAny</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#ProjectionPolicyColumnConstraint">sqlglot.expressions.ProjectionPolicyColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#RemoteWithConnectionModelProperty">sqlglot.expressions.RemoteWithConnectionModelProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#ReturnsProperty">sqlglot.expressions.ReturnsProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#SampleProperty">sqlglot.expressions.SampleProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#SecureProperty">sqlglot.expressions.SecureProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#SecurityProperty">sqlglot.expressions.SecurityProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#SetConfigProperty">sqlglot.expressions.SetConfigProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#SetProperty">sqlglot.expressions.SetProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#SettingsProperty">sqlglot.expressions.SettingsProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#SharingProperty">sqlglot.expressions.SharingProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#SqlReadWriteProperty">sqlglot.expressions.SqlReadWriteProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#SqlSecurityProperty">sqlglot.expressions.SqlSecurityProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#StabilityProperty">sqlglot.expressions.StabilityProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#Stream">sqlglot.expressions.Stream</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#StreamingTableProperty">sqlglot.expressions.StreamingTableProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#StrictProperty">sqlglot.expressions.StrictProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#SwapTable">sqlglot.expressions.SwapTable</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#TemporaryProperty">sqlglot.expressions.TemporaryProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#TagColumnConstraint">sqlglot.expressions.TagColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#TitleColumnConstraint">sqlglot.expressions.TitleColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#ToMap">sqlglot.expressions.ToMap</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#ToTableProperty">sqlglot.expressions.ToTableProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#TransformModelProperty">sqlglot.expressions.TransformModelProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#TransientProperty">sqlglot.expressions.TransientProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#Union">sqlglot.expressions.Union</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#UnloggedProperty">sqlglot.expressions.UnloggedProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#Uuid">sqlglot.expressions.Uuid</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#UppercaseColumnConstraint">sqlglot.expressions.UppercaseColumnConstraint</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#VarMap">sqlglot.expressions.VarMap</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#ViewAttributeProperty">sqlglot.expressions.ViewAttributeProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#VolatileProperty">sqlglot.expressions.VolatileProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#WithJournalTableProperty">sqlglot.expressions.WithJournalTableProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#WithProcedureOptions">sqlglot.expressions.WithProcedureOptions</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#WithSchemaBindingProperty">sqlglot.expressions.WithSchemaBindingProperty</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#WithOperator">sqlglot.expressions.WithOperator</a>'>: <function Generator.<lambda>>, <class '<a href="../expressions.html#ArrayConcat">sqlglot.expressions.ArrayConcat</a>'>: <function <a href="#Redshift.Generator">Redshift.Generator</a>.<lambda>>, <class '<a href="../expressions.html#ArrayFilter">sqlglot.expressions.ArrayFilter</a>'>: <function filter_array_using_unnest>, <class '<a href="../expressions.html#BitwiseXor">sqlglot.expressions.BitwiseXor</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#ColumnDef">sqlglot.expressions.ColumnDef</a>'>: <function preprocess.<locals>._to_sql>, <class '<a href="../expressions.html#CurrentDate">sqlglot.expressions.CurrentDate</a>'>: <function no_paren_current_date_sql>, <class '<a href="../expressions.html#CurrentTimestamp">sqlglot.expressions.CurrentTimestamp</a>'>: <function <a href="#Redshift.Generator">Redshift.Generator</a>.<lambda>>, <class '<a href="../expressions.html#CurrentUser">sqlglot.expressions.CurrentUser</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#DateAdd">sqlglot.expressions.DateAdd</a>'>: <function date_delta_sql.<locals>._delta_sql>, <class '<a href="../expressions.html#DateDiff">sqlglot.expressions.DateDiff</a>'>: <function date_delta_sql.<locals>._delta_sql>, <class '<a href="../expressions.html#DateStrToDate">sqlglot.expressions.DateStrToDate</a>'>: <function datestrtodate_sql>, <class '<a href="../expressions.html#DateSub">sqlglot.expressions.DateSub</a>'>: <function _date_add_sql.<locals>.func>, <class '<a href="../expressions.html#Explode">sqlglot.expressions.Explode</a>'>: <function <a href="#Redshift.Generator">Redshift.Generator</a>.<lambda>>, <class '<a href="../expressions.html#ExplodingGenerateSeries">sqlglot.expressions.ExplodingGenerateSeries</a>'>: <function rename_func.<locals>.<lambda>>, <class '<a href="../expressions.html#GroupConcat">sqlglot.expressions.GroupConcat</a>'>: <function rename_func.<locals>.<lambda>>, <class '<a href="../expressions.html#IntDiv">sqlglot.expressions.IntDiv</a>'>: <function rename_func.<locals>.<lambda>>, <class '<a href="../expressions.html#JSONExtract">sqlglot.expressions.JSONExtract</a>'>: <function json_extract_segments.<locals>._json_extract_segments>, <class '<a href="../expressions.html#JSONExtractScalar">sqlglot.expressions.JSONExtractScalar</a>'>: <function json_extract_segments.<locals>._json_extract_segments>, <class '<a href="../expressions.html#JSONBExtract">sqlglot.expressions.JSONBExtract</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#JSONBExtractScalar">sqlglot.expressions.JSONBExtractScalar</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#JSONBContains">sqlglot.expressions.JSONBContains</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#LogicalOr">sqlglot.expressions.LogicalOr</a>'>: <function rename_func.<locals>.<lambda>>, <class '<a href="../expressions.html#LogicalAnd">sqlglot.expressions.LogicalAnd</a>'>: <function rename_func.<locals>.<lambda>>, <class '<a href="../expressions.html#Max">sqlglot.expressions.Max</a>'>: <function max_or_greatest>, <class '<a href="../expressions.html#MapFromEntries">sqlglot.expressions.MapFromEntries</a>'>: <function no_map_from_entries_sql>, <class '<a href="../expressions.html#Min">sqlglot.expressions.Min</a>'>: <function min_or_least>, <class '<a href="../expressions.html#Merge">sqlglot.expressions.Merge</a>'>: <function merge_without_target_sql>, <class '<a href="../expressions.html#PartitionedByProperty">sqlglot.expressions.PartitionedByProperty</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#PercentileCont">sqlglot.expressions.PercentileCont</a>'>: <function preprocess.<locals>._to_sql>, <class '<a href="../expressions.html#PercentileDisc">sqlglot.expressions.PercentileDisc</a>'>: <function preprocess.<locals>._to_sql>, <class '<a href="../expressions.html#Rand">sqlglot.expressions.Rand</a>'>: <function rename_func.<locals>.<lambda>>, <class '<a href="../expressions.html#RegexpLike">sqlglot.expressions.RegexpLike</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#RegexpILike">sqlglot.expressions.RegexpILike</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#Select">sqlglot.expressions.Select</a>'>: <function preprocess.<locals>._to_sql>, <class '<a href="../expressions.html#StrPosition">sqlglot.expressions.StrPosition</a>'>: <function str_position_sql>, <class '<a href="../expressions.html#StrToDate">sqlglot.expressions.StrToDate</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#StrToTime">sqlglot.expressions.StrToTime</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#StructExtract">sqlglot.expressions.StructExtract</a>'>: <function struct_extract_sql>, <class '<a href="../expressions.html#Substring">sqlglot.expressions.Substring</a>'>: <function _substring_sql>, <class '<a href="../expressions.html#TimeFromParts">sqlglot.expressions.TimeFromParts</a>'>: <function rename_func.<locals>.<lambda>>, <class '<a href="../expressions.html#TimestampFromParts">sqlglot.expressions.TimestampFromParts</a>'>: <function rename_func.<locals>.<lambda>>, <class '<a href="../expressions.html#TimestampTrunc">sqlglot.expressions.TimestampTrunc</a>'>: <function timestamptrunc_sql.<locals>._timestamptrunc_sql>, <class '<a href="../expressions.html#TimeStrToTime">sqlglot.expressions.TimeStrToTime</a>'>: <function timestrtotime_sql>, <class '<a href="../expressions.html#TimeToStr">sqlglot.expressions.TimeToStr</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#ToChar">sqlglot.expressions.ToChar</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#Trim">sqlglot.expressions.Trim</a>'>: <function trim_sql>, <class '<a href="../expressions.html#TryCast">sqlglot.expressions.TryCast</a>'>: <function no_trycast_sql>, <class '<a href="../expressions.html#TsOrDsAdd">sqlglot.expressions.TsOrDsAdd</a>'>: <function date_delta_sql.<locals>._delta_sql>, <class '<a href="../expressions.html#TsOrDsDiff">sqlglot.expressions.TsOrDsDiff</a>'>: <function date_delta_sql.<locals>._delta_sql>, <class '<a href="../expressions.html#UnixToTime">sqlglot.expressions.UnixToTime</a>'>: <function <a href="#Redshift.Generator">Redshift.Generator</a>.<lambda>>, <class '<a href="../expressions.html#TimeToUnix">sqlglot.expressions.TimeToUnix</a>'>: <function Postgres.Generator.<lambda>>, <class '<a href="../expressions.html#VariancePop">sqlglot.expressions.VariancePop</a>'>: <function rename_func.<locals>.<lambda>>, <class '<a href="../expressions.html#Variance">sqlglot.expressions.Variance</a>'>: <function rename_func.<locals>.<lambda>>, <class '<a href="../expressions.html#Xor">sqlglot.expressions.Xor</a>'>: <function bool_xor_sql>, <class '<a href="../expressions.html#Levenshtein">sqlglot.expressions.Levenshtein</a>'>: <function _levenshtein_sql>, <class '<a href="../expressions.html#Concat">sqlglot.expressions.Concat</a>'>: <function concat_to_dpipe_sql>, <class '<a href="../expressions.html#ConcatWs">sqlglot.expressions.ConcatWs</a>'>: <function concat_ws_to_dpipe_sql>, <class '<a href="../expressions.html#ApproxDistinct">sqlglot.expressions.ApproxDistinct</a>'>: <function <a href="#Redshift.Generator">Redshift.Generator</a>.<lambda>>, <class '<a href="../expressions.html#DistKeyProperty">sqlglot.expressions.DistKeyProperty</a>'>: <function <a href="#Redshift.Generator">Redshift.Generator</a>.<lambda>>, <class '<a href="../expressions.html#DistStyleProperty">sqlglot.expressions.DistStyleProperty</a>'>: <function <a href="#Redshift.Generator">Redshift.Generator</a>.<lambda>>, <class '<a href="../expressions.html#FromBase">sqlglot.expressions.FromBase</a>'>: <function rename_func.<locals>.<lambda>>, <class '<a href="../expressions.html#GeneratedAsIdentityColumnConstraint">sqlglot.expressions.GeneratedAsIdentityColumnConstraint</a>'>: <function generatedasidentitycolumnconstraint_sql>, <class '<a href="../expressions.html#Hex">sqlglot.expressions.Hex</a>'>: <function <a href="#Redshift.Generator">Redshift.Generator</a>.<lambda>>, <class '<a href="../expressions.html#SortKeyProperty">sqlglot.expressions.SortKeyProperty</a>'>: <function <a href="#Redshift.Generator">Redshift.Generator</a>.<lambda>>, <class '<a href="../expressions.html#StartsWith">sqlglot.expressions.StartsWith</a>'>: <function <a href="#Redshift.Generator">Redshift.Generator</a>.<lambda>>, <class '<a href="../expressions.html#StringToArray">sqlglot.expressions.StringToArray</a>'>: <function rename_func.<locals>.<lambda>>, <class '<a href="../expressions.html#TableSample">sqlglot.expressions.TableSample</a>'>: <function no_tablesample_sql>}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.TRANSFORMS"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.RESERVED_KEYWORDS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">RESERVED_KEYWORDS</span> =
|
|
<input id="Redshift.Generator.RESERVED_KEYWORDS-view-value" class="view-value-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1">
|
|
<label class="view-value-button pdoc-button" for="Redshift.Generator.RESERVED_KEYWORDS-view-value"></label><span class="default_value">{'encryption', 'mostly8', 'using', 'intersect', 'verbose', 'new', 'bzip2', 'encrypt ', 'offset', 'parallel', 'text255', 'az64', 'top', 'order', 'localtimestamp', 'rejectlog', 'without', 'analyze', 'as', 'outer', 'join', 'on', 'into', 'analyse', 'disable', 'grant', 'allowoverwrite', 'having', 'isnull', 'create', 'or', 'only', 'right', 'truncatecolumns', 'gzip', 'is', 'respect', 'delta', 'explicit', 'identity', 'then', 'constraint', 'some', 'mostly16', 'freeze', 'cross', 'select', 'minus', 'between', 'with', 'mostly32', 'for', 'deflate', 'except', 'to', 'system', 'blanksasnull', 'backup', 'column', 'current_date', 'full', 'globaldict64k', 'encode', 'type', 'leading', 'do', 'case', 'table', 'unpivot', 'distinct', 'deferrable', 'permissions', 'placing', 'overlaps', 'union', 'and', 'offline', 'timestamp', 'recover', 'array', 'ilike', 'credentials', 'enable', 'ignore', 'lzo', 'where', 'aes256', 'lzop', 'emptyasnull', 'nulls', 'primary', 'cast', 'inner', 'open', 'any', 'natural', 'similar', 'true', 'readratio', 'initially', 'collate', 'limit', 'authorization', 'from', 'off', 'when', 'pivot', 'bytedict', 'text32k', 'localtime', 'group', 'raw', 'trailing', 'unique', 'sysdate', 'left', 'luns', 'asc', 'session_user', 'notnull', 'globaldict256', 'current_timestamp', 'current_user', 'tag', 'false', 'wallet', 'interval', 'like', 'unnest', 'else', 'lun', 'current_user_id', 'tdes', 'snapshot', 'default', 'resort', 'desc', 'check', 'restore', 'current_time', 'partition', 'all', 'percent', 'references', 'defrag', 'not', 'binary', 'old', 'in', 'delta32k', 'aes128', 'end', 'oid', 'foreign', 'both', 'user', 'null'}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.RESERVED_KEYWORDS"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.unnest_sql" class="classattr">
|
|
<input id="Redshift.Generator.unnest_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">unnest_sql</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 class="p">:</span> <span class="n"><a href="../expressions.html#Unnest">sqlglot.expressions.Unnest</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
|
|
|
|
<label class="view-source-button" for="Redshift.Generator.unnest_sql-view-source"><span>View Source</span></label>
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.unnest_sql"></a>
|
|
<div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.unnest_sql-391"><a href="#Redshift.Generator.unnest_sql-391"><span class="linenos">391</span></a> <span class="k">def</span> <span class="nf">unnest_sql</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">exp</span><span class="o">.</span><span class="n">Unnest</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator.unnest_sql-392"><a href="#Redshift.Generator.unnest_sql-392"><span class="linenos">392</span></a> <span class="n">args</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span>
|
|
</span><span id="Redshift.Generator.unnest_sql-393"><a href="#Redshift.Generator.unnest_sql-393"><span class="linenos">393</span></a> <span class="n">num_args</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator.unnest_sql-394"><a href="#Redshift.Generator.unnest_sql-394"><span class="linenos">394</span></a>
|
|
</span><span id="Redshift.Generator.unnest_sql-395"><a href="#Redshift.Generator.unnest_sql-395"><span class="linenos">395</span></a> <span class="k">if</span> <span class="n">num_args</span> <span class="o">!=</span> <span class="mi">1</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator.unnest_sql-396"><a href="#Redshift.Generator.unnest_sql-396"><span class="linenos">396</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported number of arguments in UNNEST: </span><span class="si">{</span><span class="n">num_args</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator.unnest_sql-397"><a href="#Redshift.Generator.unnest_sql-397"><span class="linenos">397</span></a> <span class="k">return</span> <span class="s2">""</span>
|
|
</span><span id="Redshift.Generator.unnest_sql-398"><a href="#Redshift.Generator.unnest_sql-398"><span class="linenos">398</span></a>
|
|
</span><span id="Redshift.Generator.unnest_sql-399"><a href="#Redshift.Generator.unnest_sql-399"><span class="linenos">399</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">find_ancestor</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">):</span>
|
|
</span><span id="Redshift.Generator.unnest_sql-400"><a href="#Redshift.Generator.unnest_sql-400"><span class="linenos">400</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported UNNEST when not used in FROM/JOIN clauses"</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator.unnest_sql-401"><a href="#Redshift.Generator.unnest_sql-401"><span class="linenos">401</span></a> <span class="k">return</span> <span class="s2">""</span>
|
|
</span><span id="Redshift.Generator.unnest_sql-402"><a href="#Redshift.Generator.unnest_sql-402"><span class="linenos">402</span></a>
|
|
</span><span id="Redshift.Generator.unnest_sql-403"><a href="#Redshift.Generator.unnest_sql-403"><span class="linenos">403</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
|
|
</span><span id="Redshift.Generator.unnest_sql-404"><a href="#Redshift.Generator.unnest_sql-404"><span class="linenos">404</span></a>
|
|
</span><span id="Redshift.Generator.unnest_sql-405"><a href="#Redshift.Generator.unnest_sql-405"><span class="linenos">405</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">),</span> <span class="n">key</span><span class="o">=</span><span class="s2">"columns"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator.unnest_sql-406"><a href="#Redshift.Generator.unnest_sql-406"><span class="linenos">406</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">arg</span><span class="si">}</span><span class="s2"> AS </span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="n">arg</span>
|
|
</span></pre></div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.cast_sql" class="classattr">
|
|
<input id="Redshift.Generator.cast_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">cast_sql</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"><a href="../expressions.html#Cast">sqlglot.expressions.Cast</a></span>,</span><span class="param"> <span class="n">safe_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="return-annotation">) -> <span class="nb">str</span>:</span></span>
|
|
|
|
<label class="view-source-button" for="Redshift.Generator.cast_sql-view-source"><span>View Source</span></label>
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.cast_sql"></a>
|
|
<div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.cast_sql-408"><a href="#Redshift.Generator.cast_sql-408"><span class="linenos">408</span></a> <span class="k">def</span> <span class="nf">cast_sql</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">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">,</span> <span class="n">safe_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 class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator.cast_sql-409"><a href="#Redshift.Generator.cast_sql-409"><span class="linenos">409</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">exp</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="n">JSON</span><span class="p">):</span>
|
|
</span><span id="Redshift.Generator.cast_sql-410"><a href="#Redshift.Generator.cast_sql-410"><span class="linenos">410</span></a> <span class="c1"># Redshift doesn't support a JSON type, so casting to it is treated as a noop</span>
|
|
</span><span id="Redshift.Generator.cast_sql-411"><a href="#Redshift.Generator.cast_sql-411"><span class="linenos">411</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 class="n">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator.cast_sql-412"><a href="#Redshift.Generator.cast_sql-412"><span class="linenos">412</span></a>
|
|
</span><span id="Redshift.Generator.cast_sql-413"><a href="#Redshift.Generator.cast_sql-413"><span class="linenos">413</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">cast_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">safe_prefix</span><span class="o">=</span><span class="n">safe_prefix</span><span class="p">)</span>
|
|
</span></pre></div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.datatype_sql" class="classattr">
|
|
<input id="Redshift.Generator.datatype_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">datatype_sql</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 class="p">:</span> <span class="n"><a href="../expressions.html#DataType">sqlglot.expressions.DataType</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
|
|
|
|
<label class="view-source-button" for="Redshift.Generator.datatype_sql-view-source"><span>View Source</span></label>
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.datatype_sql"></a>
|
|
<div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.datatype_sql-415"><a href="#Redshift.Generator.datatype_sql-415"><span class="linenos">415</span></a> <span class="k">def</span> <span class="nf">datatype_sql</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">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator.datatype_sql-416"><a href="#Redshift.Generator.datatype_sql-416"><span class="linenos">416</span></a><span class="w"> </span><span class="sd">"""</span>
|
|
</span><span id="Redshift.Generator.datatype_sql-417"><a href="#Redshift.Generator.datatype_sql-417"><span class="linenos">417</span></a><span class="sd"> Redshift converts the `TEXT` data type to `VARCHAR(255)` by default when people more generally mean</span>
|
|
</span><span id="Redshift.Generator.datatype_sql-418"><a href="#Redshift.Generator.datatype_sql-418"><span class="linenos">418</span></a><span class="sd"> VARCHAR of max length which is `VARCHAR(max)` in Redshift. Therefore if we get a `TEXT` data type</span>
|
|
</span><span id="Redshift.Generator.datatype_sql-419"><a href="#Redshift.Generator.datatype_sql-419"><span class="linenos">419</span></a><span class="sd"> without precision we convert it to `VARCHAR(max)` and if it does have precision then we just convert</span>
|
|
</span><span id="Redshift.Generator.datatype_sql-420"><a href="#Redshift.Generator.datatype_sql-420"><span class="linenos">420</span></a><span class="sd"> `TEXT` to `VARCHAR`.</span>
|
|
</span><span id="Redshift.Generator.datatype_sql-421"><a href="#Redshift.Generator.datatype_sql-421"><span class="linenos">421</span></a><span class="sd"> """</span>
|
|
</span><span id="Redshift.Generator.datatype_sql-422"><a href="#Redshift.Generator.datatype_sql-422"><span class="linenos">422</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="s2">"text"</span><span class="p">):</span>
|
|
</span><span id="Redshift.Generator.datatype_sql-423"><a href="#Redshift.Generator.datatype_sql-423"><span class="linenos">423</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"this"</span><span class="p">,</span> <span class="n">exp</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="n">VARCHAR</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator.datatype_sql-424"><a href="#Redshift.Generator.datatype_sql-424"><span class="linenos">424</span></a> <span class="n">precision</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator.datatype_sql-425"><a href="#Redshift.Generator.datatype_sql-425"><span class="linenos">425</span></a>
|
|
</span><span id="Redshift.Generator.datatype_sql-426"><a href="#Redshift.Generator.datatype_sql-426"><span class="linenos">426</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">precision</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator.datatype_sql-427"><a href="#Redshift.Generator.datatype_sql-427"><span class="linenos">427</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">var</span><span class="p">(</span><span class="s2">"MAX"</span><span class="p">))</span>
|
|
</span><span id="Redshift.Generator.datatype_sql-428"><a href="#Redshift.Generator.datatype_sql-428"><span class="linenos">428</span></a>
|
|
</span><span id="Redshift.Generator.datatype_sql-429"><a href="#Redshift.Generator.datatype_sql-429"><span class="linenos">429</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">datatype_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
|
|
</span></pre></div>
|
|
|
|
|
|
<div class="docstring"><p>Redshift converts the <code>TEXT</code> data type to <code>VARCHAR(255)</code> by default when people more generally mean
|
|
VARCHAR of max length which is <code>VARCHAR(max)</code> in Redshift. Therefore if we get a <code>TEXT</code> data type
|
|
without precision we convert it to <code>VARCHAR(max)</code> and if it does have precision then we just convert
|
|
<code>TEXT</code> to <code>VARCHAR</code>.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.alterset_sql" class="classattr">
|
|
<input id="Redshift.Generator.alterset_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">alterset_sql</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 class="p">:</span> <span class="n"><a href="../expressions.html#AlterSet">sqlglot.expressions.AlterSet</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
|
|
|
|
<label class="view-source-button" for="Redshift.Generator.alterset_sql-view-source"><span>View Source</span></label>
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.alterset_sql"></a>
|
|
<div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.alterset_sql-431"><a href="#Redshift.Generator.alterset_sql-431"><span class="linenos">431</span></a> <span class="k">def</span> <span class="nf">alterset_sql</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">exp</span><span class="o">.</span><span class="n">AlterSet</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator.alterset_sql-432"><a href="#Redshift.Generator.alterset_sql-432"><span class="linenos">432</span></a> <span class="n">exprs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator.alterset_sql-433"><a href="#Redshift.Generator.alterset_sql-433"><span class="linenos">433</span></a> <span class="n">exprs</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" TABLE PROPERTIES (</span><span class="si">{</span><span class="n">exprs</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">exprs</span> <span class="k">else</span> <span class="s2">""</span>
|
|
</span><span id="Redshift.Generator.alterset_sql-434"><a href="#Redshift.Generator.alterset_sql-434"><span class="linenos">434</span></a> <span class="n">location</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"location"</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator.alterset_sql-435"><a href="#Redshift.Generator.alterset_sql-435"><span class="linenos">435</span></a> <span class="n">location</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" LOCATION </span><span class="si">{</span><span class="n">location</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">location</span> <span class="k">else</span> <span class="s2">""</span>
|
|
</span><span id="Redshift.Generator.alterset_sql-436"><a href="#Redshift.Generator.alterset_sql-436"><span class="linenos">436</span></a> <span class="n">file_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="s2">"file_format"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator.alterset_sql-437"><a href="#Redshift.Generator.alterset_sql-437"><span class="linenos">437</span></a> <span class="n">file_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FILE FORMAT </span><span class="si">{</span><span class="n">file_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">file_format</span> <span class="k">else</span> <span class="s2">""</span>
|
|
</span><span id="Redshift.Generator.alterset_sql-438"><a href="#Redshift.Generator.alterset_sql-438"><span class="linenos">438</span></a>
|
|
</span><span id="Redshift.Generator.alterset_sql-439"><a href="#Redshift.Generator.alterset_sql-439"><span class="linenos">439</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SET</span><span class="si">{</span><span class="n">exprs</span><span class="si">}{</span><span class="n">location</span><span class="si">}{</span><span class="n">file_format</span><span class="si">}</span><span class="s2">"</span>
|
|
</span></pre></div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.array_sql" class="classattr">
|
|
<input id="Redshift.Generator.array_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">array_sql</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 class="p">:</span> <span class="n"><a href="../expressions.html#Array">sqlglot.expressions.Array</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
|
|
|
|
<label class="view-source-button" for="Redshift.Generator.array_sql-view-source"><span>View Source</span></label>
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.array_sql"></a>
|
|
<div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.array_sql-441"><a href="#Redshift.Generator.array_sql-441"><span class="linenos">441</span></a> <span class="k">def</span> <span class="nf">array_sql</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">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator.array_sql-442"><a href="#Redshift.Generator.array_sql-442"><span class="linenos">442</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"bracket_notation"</span><span class="p">):</span>
|
|
</span><span id="Redshift.Generator.array_sql-443"><a href="#Redshift.Generator.array_sql-443"><span class="linenos">443</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">array_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator.array_sql-444"><a href="#Redshift.Generator.array_sql-444"><span class="linenos">444</span></a>
|
|
</span><span id="Redshift.Generator.array_sql-445"><a href="#Redshift.Generator.array_sql-445"><span class="linenos">445</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY"</span><span class="p">)(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span>
|
|
</span></pre></div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.explode_sql" class="classattr">
|
|
<input id="Redshift.Generator.explode_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">explode_sql</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 class="p">:</span> <span class="n"><a href="../expressions.html#Explode">sqlglot.expressions.Explode</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span>
|
|
|
|
<label class="view-source-button" for="Redshift.Generator.explode_sql-view-source"><span>View Source</span></label>
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.explode_sql"></a>
|
|
<div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.explode_sql-447"><a href="#Redshift.Generator.explode_sql-447"><span class="linenos">447</span></a> <span class="k">def</span> <span class="nf">explode_sql</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">exp</span><span class="o">.</span><span class="n">Explode</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
|
</span><span id="Redshift.Generator.explode_sql-448"><a href="#Redshift.Generator.explode_sql-448"><span class="linenos">448</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported EXPLODE() function"</span><span class="p">)</span>
|
|
</span><span id="Redshift.Generator.explode_sql-449"><a href="#Redshift.Generator.explode_sql-449"><span class="linenos">449</span></a> <span class="k">return</span> <span class="s2">""</span>
|
|
</span></pre></div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.SELECT_KINDS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">SELECT_KINDS</span><span class="annotation">: Tuple[str, ...]</span> =
|
|
<span class="default_value">()</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.SELECT_KINDS"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.TRY_SUPPORTED" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">TRY_SUPPORTED</span> =
|
|
<span class="default_value">False</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.TRY_SUPPORTED"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.SUPPORTS_UESCAPE" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">SUPPORTS_UESCAPE</span> =
|
|
<span class="default_value">False</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.SUPPORTS_UESCAPE"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Redshift.Generator.AFTER_HAVING_MODIFIER_TRANSFORMS" class="classattr">
|
|
<div class="attr variable">
|
|
<span class="name">AFTER_HAVING_MODIFIER_TRANSFORMS</span> =
|
|
<span class="default_value">{'windows': <function Generator.<lambda>>, 'qualify': <function Generator.<lambda>>}</span>
|
|
|
|
|
|
</div>
|
|
<a class="headerlink" href="#Redshift.Generator.AFTER_HAVING_MODIFIER_TRANSFORMS"></a>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="../generator.html#Generator">sqlglot.generator.Generator</a></dt>
|
|
<dd id="Redshift.Generator.__init__" class="function"><a href="../generator.html#Generator.__init__">Generator</a></dd>
|
|
<dd id="Redshift.Generator.NULL_ORDERING_SUPPORTED" class="variable"><a href="../generator.html#Generator.NULL_ORDERING_SUPPORTED">NULL_ORDERING_SUPPORTED</a></dd>
|
|
<dd id="Redshift.Generator.IGNORE_NULLS_IN_FUNC" class="variable"><a href="../generator.html#Generator.IGNORE_NULLS_IN_FUNC">IGNORE_NULLS_IN_FUNC</a></dd>
|
|
<dd id="Redshift.Generator.WRAP_DERIVED_VALUES" class="variable"><a href="../generator.html#Generator.WRAP_DERIVED_VALUES">WRAP_DERIVED_VALUES</a></dd>
|
|
<dd id="Redshift.Generator.CREATE_FUNCTION_RETURN_AS" class="variable"><a href="../generator.html#Generator.CREATE_FUNCTION_RETURN_AS">CREATE_FUNCTION_RETURN_AS</a></dd>
|
|
<dd id="Redshift.Generator.MATCHED_BY_SOURCE" class="variable"><a href="../generator.html#Generator.MATCHED_BY_SOURCE">MATCHED_BY_SOURCE</a></dd>
|
|
<dd id="Redshift.Generator.INTERVAL_ALLOWS_PLURAL_FORM" class="variable"><a href="../generator.html#Generator.INTERVAL_ALLOWS_PLURAL_FORM">INTERVAL_ALLOWS_PLURAL_FORM</a></dd>
|
|
<dd id="Redshift.Generator.LIMIT_FETCH" class="variable"><a href="../generator.html#Generator.LIMIT_FETCH">LIMIT_FETCH</a></dd>
|
|
<dd id="Redshift.Generator.LIMIT_ONLY_LITERALS" class="variable"><a href="../generator.html#Generator.LIMIT_ONLY_LITERALS">LIMIT_ONLY_LITERALS</a></dd>
|
|
<dd id="Redshift.Generator.GROUPINGS_SEP" class="variable"><a href="../generator.html#Generator.GROUPINGS_SEP">GROUPINGS_SEP</a></dd>
|
|
<dd id="Redshift.Generator.INDEX_ON" class="variable"><a href="../generator.html#Generator.INDEX_ON">INDEX_ON</a></dd>
|
|
<dd id="Redshift.Generator.QUERY_HINT_SEP" class="variable"><a href="../generator.html#Generator.QUERY_HINT_SEP">QUERY_HINT_SEP</a></dd>
|
|
<dd id="Redshift.Generator.IS_BOOL_ALLOWED" class="variable"><a href="../generator.html#Generator.IS_BOOL_ALLOWED">IS_BOOL_ALLOWED</a></dd>
|
|
<dd id="Redshift.Generator.DUPLICATE_KEY_UPDATE_WITH_SET" class="variable"><a href="../generator.html#Generator.DUPLICATE_KEY_UPDATE_WITH_SET">DUPLICATE_KEY_UPDATE_WITH_SET</a></dd>
|
|
<dd id="Redshift.Generator.LIMIT_IS_TOP" class="variable"><a href="../generator.html#Generator.LIMIT_IS_TOP">LIMIT_IS_TOP</a></dd>
|
|
<dd id="Redshift.Generator.RETURNING_END" class="variable"><a href="../generator.html#Generator.RETURNING_END">RETURNING_END</a></dd>
|
|
<dd id="Redshift.Generator.EXTRACT_ALLOWS_QUOTES" class="variable"><a href="../generator.html#Generator.EXTRACT_ALLOWS_QUOTES">EXTRACT_ALLOWS_QUOTES</a></dd>
|
|
<dd id="Redshift.Generator.ALTER_TABLE_INCLUDE_COLUMN_KEYWORD" class="variable"><a href="../generator.html#Generator.ALTER_TABLE_INCLUDE_COLUMN_KEYWORD">ALTER_TABLE_INCLUDE_COLUMN_KEYWORD</a></dd>
|
|
<dd id="Redshift.Generator.UNNEST_WITH_ORDINALITY" class="variable"><a href="../generator.html#Generator.UNNEST_WITH_ORDINALITY">UNNEST_WITH_ORDINALITY</a></dd>
|
|
<dd id="Redshift.Generator.AGGREGATE_FILTER_SUPPORTED" class="variable"><a href="../generator.html#Generator.AGGREGATE_FILTER_SUPPORTED">AGGREGATE_FILTER_SUPPORTED</a></dd>
|
|
<dd id="Redshift.Generator.SEMI_ANTI_JOIN_WITH_SIDE" class="variable"><a href="../generator.html#Generator.SEMI_ANTI_JOIN_WITH_SIDE">SEMI_ANTI_JOIN_WITH_SIDE</a></dd>
|
|
<dd id="Redshift.Generator.COMPUTED_COLUMN_WITH_TYPE" class="variable"><a href="../generator.html#Generator.COMPUTED_COLUMN_WITH_TYPE">COMPUTED_COLUMN_WITH_TYPE</a></dd>
|
|
<dd id="Redshift.Generator.SUPPORTS_TABLE_COPY" class="variable"><a href="../generator.html#Generator.SUPPORTS_TABLE_COPY">SUPPORTS_TABLE_COPY</a></dd>
|
|
<dd id="Redshift.Generator.TABLESAMPLE_REQUIRES_PARENS" class="variable"><a href="../generator.html#Generator.TABLESAMPLE_REQUIRES_PARENS">TABLESAMPLE_REQUIRES_PARENS</a></dd>
|
|
<dd id="Redshift.Generator.TABLESAMPLE_KEYWORDS" class="variable"><a href="../generator.html#Generator.TABLESAMPLE_KEYWORDS">TABLESAMPLE_KEYWORDS</a></dd>
|
|
<dd id="Redshift.Generator.TABLESAMPLE_WITH_METHOD" class="variable"><a href="../generator.html#Generator.TABLESAMPLE_WITH_METHOD">TABLESAMPLE_WITH_METHOD</a></dd>
|
|
<dd id="Redshift.Generator.COLLATE_IS_FUNC" class="variable"><a href="../generator.html#Generator.COLLATE_IS_FUNC">COLLATE_IS_FUNC</a></dd>
|
|
<dd id="Redshift.Generator.DATA_TYPE_SPECIFIERS_ALLOWED" class="variable"><a href="../generator.html#Generator.DATA_TYPE_SPECIFIERS_ALLOWED">DATA_TYPE_SPECIFIERS_ALLOWED</a></dd>
|
|
<dd id="Redshift.Generator.ENSURE_BOOLS" class="variable"><a href="../generator.html#Generator.ENSURE_BOOLS">ENSURE_BOOLS</a></dd>
|
|
<dd id="Redshift.Generator.CTE_RECURSIVE_KEYWORD_REQUIRED" class="variable"><a href="../generator.html#Generator.CTE_RECURSIVE_KEYWORD_REQUIRED">CTE_RECURSIVE_KEYWORD_REQUIRED</a></dd>
|
|
<dd id="Redshift.Generator.SUPPORTS_SINGLE_ARG_CONCAT" class="variable"><a href="../generator.html#Generator.SUPPORTS_SINGLE_ARG_CONCAT">SUPPORTS_SINGLE_ARG_CONCAT</a></dd>
|
|
<dd id="Redshift.Generator.SUPPORTS_TABLE_ALIAS_COLUMNS" class="variable"><a href="../generator.html#Generator.SUPPORTS_TABLE_ALIAS_COLUMNS">SUPPORTS_TABLE_ALIAS_COLUMNS</a></dd>
|
|
<dd id="Redshift.Generator.UNPIVOT_ALIASES_ARE_IDENTIFIERS" class="variable"><a href="../generator.html#Generator.UNPIVOT_ALIASES_ARE_IDENTIFIERS">UNPIVOT_ALIASES_ARE_IDENTIFIERS</a></dd>
|
|
<dd id="Redshift.Generator.JSON_KEY_VALUE_PAIR_SEP" class="variable"><a href="../generator.html#Generator.JSON_KEY_VALUE_PAIR_SEP">JSON_KEY_VALUE_PAIR_SEP</a></dd>
|
|
<dd id="Redshift.Generator.INSERT_OVERWRITE" class="variable"><a href="../generator.html#Generator.INSERT_OVERWRITE">INSERT_OVERWRITE</a></dd>
|
|
<dd id="Redshift.Generator.SUPPORTS_CREATE_TABLE_LIKE" class="variable"><a href="../generator.html#Generator.SUPPORTS_CREATE_TABLE_LIKE">SUPPORTS_CREATE_TABLE_LIKE</a></dd>
|
|
<dd id="Redshift.Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED" class="variable"><a href="../generator.html#Generator.JSON_PATH_BRACKETED_KEY_SUPPORTED">JSON_PATH_BRACKETED_KEY_SUPPORTED</a></dd>
|
|
<dd id="Redshift.Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE" class="variable"><a href="../generator.html#Generator.JSON_PATH_SINGLE_QUOTE_ESCAPE">JSON_PATH_SINGLE_QUOTE_ESCAPE</a></dd>
|
|
<dd id="Redshift.Generator.SUPPORTS_TO_NUMBER" class="variable"><a href="../generator.html#Generator.SUPPORTS_TO_NUMBER">SUPPORTS_TO_NUMBER</a></dd>
|
|
<dd id="Redshift.Generator.SET_OP_MODIFIERS" class="variable"><a href="../generator.html#Generator.SET_OP_MODIFIERS">SET_OP_MODIFIERS</a></dd>
|
|
<dd id="Redshift.Generator.COPY_PARAMS_EQ_REQUIRED" class="variable"><a href="../generator.html#Generator.COPY_PARAMS_EQ_REQUIRED">COPY_PARAMS_EQ_REQUIRED</a></dd>
|
|
<dd id="Redshift.Generator.STAR_EXCEPT" class="variable"><a href="../generator.html#Generator.STAR_EXCEPT">STAR_EXCEPT</a></dd>
|
|
<dd id="Redshift.Generator.QUOTE_JSON_PATH" class="variable"><a href="../generator.html#Generator.QUOTE_JSON_PATH">QUOTE_JSON_PATH</a></dd>
|
|
<dd id="Redshift.Generator.PAD_FILL_PATTERN_IS_REQUIRED" class="variable"><a href="../generator.html#Generator.PAD_FILL_PATTERN_IS_REQUIRED">PAD_FILL_PATTERN_IS_REQUIRED</a></dd>
|
|
<dd id="Redshift.Generator.SUPPORTS_EXPLODING_PROJECTIONS" class="variable"><a href="../generator.html#Generator.SUPPORTS_EXPLODING_PROJECTIONS">SUPPORTS_EXPLODING_PROJECTIONS</a></dd>
|
|
<dd id="Redshift.Generator.SUPPORTS_UNIX_SECONDS" class="variable"><a href="../generator.html#Generator.SUPPORTS_UNIX_SECONDS">SUPPORTS_UNIX_SECONDS</a></dd>
|
|
<dd id="Redshift.Generator.ARRAY_SIZE_NAME" class="variable"><a href="../generator.html#Generator.ARRAY_SIZE_NAME">ARRAY_SIZE_NAME</a></dd>
|
|
<dd id="Redshift.Generator.TIME_PART_SINGULARS" class="variable"><a href="../generator.html#Generator.TIME_PART_SINGULARS">TIME_PART_SINGULARS</a></dd>
|
|
<dd id="Redshift.Generator.TOKEN_MAPPING" class="variable"><a href="../generator.html#Generator.TOKEN_MAPPING">TOKEN_MAPPING</a></dd>
|
|
<dd id="Redshift.Generator.STRUCT_DELIMITER" class="variable"><a href="../generator.html#Generator.STRUCT_DELIMITER">STRUCT_DELIMITER</a></dd>
|
|
<dd id="Redshift.Generator.NAMED_PLACEHOLDER_TOKEN" class="variable"><a href="../generator.html#Generator.NAMED_PLACEHOLDER_TOKEN">NAMED_PLACEHOLDER_TOKEN</a></dd>
|
|
<dd id="Redshift.Generator.WITH_SEPARATED_COMMENTS" class="variable"><a href="../generator.html#Generator.WITH_SEPARATED_COMMENTS">WITH_SEPARATED_COMMENTS</a></dd>
|
|
<dd id="Redshift.Generator.EXCLUDE_COMMENTS" class="variable"><a href="../generator.html#Generator.EXCLUDE_COMMENTS">EXCLUDE_COMMENTS</a></dd>
|
|
<dd id="Redshift.Generator.UNWRAPPED_INTERVAL_VALUES" class="variable"><a href="../generator.html#Generator.UNWRAPPED_INTERVAL_VALUES">UNWRAPPED_INTERVAL_VALUES</a></dd>
|
|
<dd id="Redshift.Generator.PARAMETERIZABLE_TEXT_TYPES" class="variable"><a href="../generator.html#Generator.PARAMETERIZABLE_TEXT_TYPES">PARAMETERIZABLE_TEXT_TYPES</a></dd>
|
|
<dd id="Redshift.Generator.EXPRESSIONS_WITHOUT_NESTED_CTES" class="variable"><a href="../generator.html#Generator.EXPRESSIONS_WITHOUT_NESTED_CTES">EXPRESSIONS_WITHOUT_NESTED_CTES</a></dd>
|
|
<dd id="Redshift.Generator.SENTINEL_LINE_BREAK" class="variable"><a href="../generator.html#Generator.SENTINEL_LINE_BREAK">SENTINEL_LINE_BREAK</a></dd>
|
|
<dd id="Redshift.Generator.pretty" class="variable"><a href="../generator.html#Generator.pretty">pretty</a></dd>
|
|
<dd id="Redshift.Generator.identify" class="variable"><a href="../generator.html#Generator.identify">identify</a></dd>
|
|
<dd id="Redshift.Generator.normalize" class="variable"><a href="../generator.html#Generator.normalize">normalize</a></dd>
|
|
<dd id="Redshift.Generator.pad" class="variable"><a href="../generator.html#Generator.pad">pad</a></dd>
|
|
<dd id="Redshift.Generator.unsupported_level" class="variable"><a href="../generator.html#Generator.unsupported_level">unsupported_level</a></dd>
|
|
<dd id="Redshift.Generator.max_unsupported" class="variable"><a href="../generator.html#Generator.max_unsupported">max_unsupported</a></dd>
|
|
<dd id="Redshift.Generator.leading_comma" class="variable"><a href="../generator.html#Generator.leading_comma">leading_comma</a></dd>
|
|
<dd id="Redshift.Generator.max_text_width" class="variable"><a href="../generator.html#Generator.max_text_width">max_text_width</a></dd>
|
|
<dd id="Redshift.Generator.comments" class="variable"><a href="../generator.html#Generator.comments">comments</a></dd>
|
|
<dd id="Redshift.Generator.dialect" class="variable"><a href="../generator.html#Generator.dialect">dialect</a></dd>
|
|
<dd id="Redshift.Generator.normalize_functions" class="variable"><a href="../generator.html#Generator.normalize_functions">normalize_functions</a></dd>
|
|
<dd id="Redshift.Generator.unsupported_messages" class="variable"><a href="../generator.html#Generator.unsupported_messages">unsupported_messages</a></dd>
|
|
<dd id="Redshift.Generator.generate" class="function"><a href="../generator.html#Generator.generate">generate</a></dd>
|
|
<dd id="Redshift.Generator.preprocess" class="function"><a href="../generator.html#Generator.preprocess">preprocess</a></dd>
|
|
<dd id="Redshift.Generator.unsupported" class="function"><a href="../generator.html#Generator.unsupported">unsupported</a></dd>
|
|
<dd id="Redshift.Generator.sep" class="function"><a href="../generator.html#Generator.sep">sep</a></dd>
|
|
<dd id="Redshift.Generator.seg" class="function"><a href="../generator.html#Generator.seg">seg</a></dd>
|
|
<dd id="Redshift.Generator.pad_comment" class="function"><a href="../generator.html#Generator.pad_comment">pad_comment</a></dd>
|
|
<dd id="Redshift.Generator.maybe_comment" class="function"><a href="../generator.html#Generator.maybe_comment">maybe_comment</a></dd>
|
|
<dd id="Redshift.Generator.wrap" class="function"><a href="../generator.html#Generator.wrap">wrap</a></dd>
|
|
<dd id="Redshift.Generator.no_identify" class="function"><a href="../generator.html#Generator.no_identify">no_identify</a></dd>
|
|
<dd id="Redshift.Generator.normalize_func" class="function"><a href="../generator.html#Generator.normalize_func">normalize_func</a></dd>
|
|
<dd id="Redshift.Generator.indent" class="function"><a href="../generator.html#Generator.indent">indent</a></dd>
|
|
<dd id="Redshift.Generator.sql" class="function"><a href="../generator.html#Generator.sql">sql</a></dd>
|
|
<dd id="Redshift.Generator.uncache_sql" class="function"><a href="../generator.html#Generator.uncache_sql">uncache_sql</a></dd>
|
|
<dd id="Redshift.Generator.cache_sql" class="function"><a href="../generator.html#Generator.cache_sql">cache_sql</a></dd>
|
|
<dd id="Redshift.Generator.characterset_sql" class="function"><a href="../generator.html#Generator.characterset_sql">characterset_sql</a></dd>
|
|
<dd id="Redshift.Generator.column_parts" class="function"><a href="../generator.html#Generator.column_parts">column_parts</a></dd>
|
|
<dd id="Redshift.Generator.column_sql" class="function"><a href="../generator.html#Generator.column_sql">column_sql</a></dd>
|
|
<dd id="Redshift.Generator.columnposition_sql" class="function"><a href="../generator.html#Generator.columnposition_sql">columnposition_sql</a></dd>
|
|
<dd id="Redshift.Generator.columndef_sql" class="function"><a href="../generator.html#Generator.columndef_sql">columndef_sql</a></dd>
|
|
<dd id="Redshift.Generator.columnconstraint_sql" class="function"><a href="../generator.html#Generator.columnconstraint_sql">columnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.computedcolumnconstraint_sql" class="function"><a href="../generator.html#Generator.computedcolumnconstraint_sql">computedcolumnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.autoincrementcolumnconstraint_sql" class="function"><a href="../generator.html#Generator.autoincrementcolumnconstraint_sql">autoincrementcolumnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.compresscolumnconstraint_sql" class="function"><a href="../generator.html#Generator.compresscolumnconstraint_sql">compresscolumnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.generatedasidentitycolumnconstraint_sql" class="function"><a href="../generator.html#Generator.generatedasidentitycolumnconstraint_sql">generatedasidentitycolumnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.generatedasrowcolumnconstraint_sql" class="function"><a href="../generator.html#Generator.generatedasrowcolumnconstraint_sql">generatedasrowcolumnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.periodforsystemtimeconstraint_sql" class="function"><a href="../generator.html#Generator.periodforsystemtimeconstraint_sql">periodforsystemtimeconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.notnullcolumnconstraint_sql" class="function"><a href="../generator.html#Generator.notnullcolumnconstraint_sql">notnullcolumnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.transformcolumnconstraint_sql" class="function"><a href="../generator.html#Generator.transformcolumnconstraint_sql">transformcolumnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.primarykeycolumnconstraint_sql" class="function"><a href="../generator.html#Generator.primarykeycolumnconstraint_sql">primarykeycolumnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.uniquecolumnconstraint_sql" class="function"><a href="../generator.html#Generator.uniquecolumnconstraint_sql">uniquecolumnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.createable_sql" class="function"><a href="../generator.html#Generator.createable_sql">createable_sql</a></dd>
|
|
<dd id="Redshift.Generator.create_sql" class="function"><a href="../generator.html#Generator.create_sql">create_sql</a></dd>
|
|
<dd id="Redshift.Generator.sequenceproperties_sql" class="function"><a href="../generator.html#Generator.sequenceproperties_sql">sequenceproperties_sql</a></dd>
|
|
<dd id="Redshift.Generator.clone_sql" class="function"><a href="../generator.html#Generator.clone_sql">clone_sql</a></dd>
|
|
<dd id="Redshift.Generator.describe_sql" class="function"><a href="../generator.html#Generator.describe_sql">describe_sql</a></dd>
|
|
<dd id="Redshift.Generator.heredoc_sql" class="function"><a href="../generator.html#Generator.heredoc_sql">heredoc_sql</a></dd>
|
|
<dd id="Redshift.Generator.prepend_ctes" class="function"><a href="../generator.html#Generator.prepend_ctes">prepend_ctes</a></dd>
|
|
<dd id="Redshift.Generator.with_sql" class="function"><a href="../generator.html#Generator.with_sql">with_sql</a></dd>
|
|
<dd id="Redshift.Generator.cte_sql" class="function"><a href="../generator.html#Generator.cte_sql">cte_sql</a></dd>
|
|
<dd id="Redshift.Generator.tablealias_sql" class="function"><a href="../generator.html#Generator.tablealias_sql">tablealias_sql</a></dd>
|
|
<dd id="Redshift.Generator.bitstring_sql" class="function"><a href="../generator.html#Generator.bitstring_sql">bitstring_sql</a></dd>
|
|
<dd id="Redshift.Generator.hexstring_sql" class="function"><a href="../generator.html#Generator.hexstring_sql">hexstring_sql</a></dd>
|
|
<dd id="Redshift.Generator.bytestring_sql" class="function"><a href="../generator.html#Generator.bytestring_sql">bytestring_sql</a></dd>
|
|
<dd id="Redshift.Generator.unicodestring_sql" class="function"><a href="../generator.html#Generator.unicodestring_sql">unicodestring_sql</a></dd>
|
|
<dd id="Redshift.Generator.rawstring_sql" class="function"><a href="../generator.html#Generator.rawstring_sql">rawstring_sql</a></dd>
|
|
<dd id="Redshift.Generator.datatypeparam_sql" class="function"><a href="../generator.html#Generator.datatypeparam_sql">datatypeparam_sql</a></dd>
|
|
<dd id="Redshift.Generator.directory_sql" class="function"><a href="../generator.html#Generator.directory_sql">directory_sql</a></dd>
|
|
<dd id="Redshift.Generator.delete_sql" class="function"><a href="../generator.html#Generator.delete_sql">delete_sql</a></dd>
|
|
<dd id="Redshift.Generator.drop_sql" class="function"><a href="../generator.html#Generator.drop_sql">drop_sql</a></dd>
|
|
<dd id="Redshift.Generator.set_operation" class="function"><a href="../generator.html#Generator.set_operation">set_operation</a></dd>
|
|
<dd id="Redshift.Generator.set_operations" class="function"><a href="../generator.html#Generator.set_operations">set_operations</a></dd>
|
|
<dd id="Redshift.Generator.fetch_sql" class="function"><a href="../generator.html#Generator.fetch_sql">fetch_sql</a></dd>
|
|
<dd id="Redshift.Generator.filter_sql" class="function"><a href="../generator.html#Generator.filter_sql">filter_sql</a></dd>
|
|
<dd id="Redshift.Generator.hint_sql" class="function"><a href="../generator.html#Generator.hint_sql">hint_sql</a></dd>
|
|
<dd id="Redshift.Generator.indexparameters_sql" class="function"><a href="../generator.html#Generator.indexparameters_sql">indexparameters_sql</a></dd>
|
|
<dd id="Redshift.Generator.index_sql" class="function"><a href="../generator.html#Generator.index_sql">index_sql</a></dd>
|
|
<dd id="Redshift.Generator.identifier_sql" class="function"><a href="../generator.html#Generator.identifier_sql">identifier_sql</a></dd>
|
|
<dd id="Redshift.Generator.hex_sql" class="function"><a href="../generator.html#Generator.hex_sql">hex_sql</a></dd>
|
|
<dd id="Redshift.Generator.lowerhex_sql" class="function"><a href="../generator.html#Generator.lowerhex_sql">lowerhex_sql</a></dd>
|
|
<dd id="Redshift.Generator.inputoutputformat_sql" class="function"><a href="../generator.html#Generator.inputoutputformat_sql">inputoutputformat_sql</a></dd>
|
|
<dd id="Redshift.Generator.national_sql" class="function"><a href="../generator.html#Generator.national_sql">national_sql</a></dd>
|
|
<dd id="Redshift.Generator.partition_sql" class="function"><a href="../generator.html#Generator.partition_sql">partition_sql</a></dd>
|
|
<dd id="Redshift.Generator.properties_sql" class="function"><a href="../generator.html#Generator.properties_sql">properties_sql</a></dd>
|
|
<dd id="Redshift.Generator.root_properties" class="function"><a href="../generator.html#Generator.root_properties">root_properties</a></dd>
|
|
<dd id="Redshift.Generator.properties" class="function"><a href="../generator.html#Generator.properties">properties</a></dd>
|
|
<dd id="Redshift.Generator.with_properties" class="function"><a href="../generator.html#Generator.with_properties">with_properties</a></dd>
|
|
<dd id="Redshift.Generator.locate_properties" class="function"><a href="../generator.html#Generator.locate_properties">locate_properties</a></dd>
|
|
<dd id="Redshift.Generator.property_name" class="function"><a href="../generator.html#Generator.property_name">property_name</a></dd>
|
|
<dd id="Redshift.Generator.property_sql" class="function"><a href="../generator.html#Generator.property_sql">property_sql</a></dd>
|
|
<dd id="Redshift.Generator.likeproperty_sql" class="function"><a href="../generator.html#Generator.likeproperty_sql">likeproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.fallbackproperty_sql" class="function"><a href="../generator.html#Generator.fallbackproperty_sql">fallbackproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.journalproperty_sql" class="function"><a href="../generator.html#Generator.journalproperty_sql">journalproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.freespaceproperty_sql" class="function"><a href="../generator.html#Generator.freespaceproperty_sql">freespaceproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.checksumproperty_sql" class="function"><a href="../generator.html#Generator.checksumproperty_sql">checksumproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.mergeblockratioproperty_sql" class="function"><a href="../generator.html#Generator.mergeblockratioproperty_sql">mergeblockratioproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.datablocksizeproperty_sql" class="function"><a href="../generator.html#Generator.datablocksizeproperty_sql">datablocksizeproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.blockcompressionproperty_sql" class="function"><a href="../generator.html#Generator.blockcompressionproperty_sql">blockcompressionproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.isolatedloadingproperty_sql" class="function"><a href="../generator.html#Generator.isolatedloadingproperty_sql">isolatedloadingproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.partitionboundspec_sql" class="function"><a href="../generator.html#Generator.partitionboundspec_sql">partitionboundspec_sql</a></dd>
|
|
<dd id="Redshift.Generator.partitionedofproperty_sql" class="function"><a href="../generator.html#Generator.partitionedofproperty_sql">partitionedofproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.lockingproperty_sql" class="function"><a href="../generator.html#Generator.lockingproperty_sql">lockingproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.withdataproperty_sql" class="function"><a href="../generator.html#Generator.withdataproperty_sql">withdataproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.withsystemversioningproperty_sql" class="function"><a href="../generator.html#Generator.withsystemversioningproperty_sql">withsystemversioningproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.insert_sql" class="function"><a href="../generator.html#Generator.insert_sql">insert_sql</a></dd>
|
|
<dd id="Redshift.Generator.introducer_sql" class="function"><a href="../generator.html#Generator.introducer_sql">introducer_sql</a></dd>
|
|
<dd id="Redshift.Generator.kill_sql" class="function"><a href="../generator.html#Generator.kill_sql">kill_sql</a></dd>
|
|
<dd id="Redshift.Generator.pseudotype_sql" class="function"><a href="../generator.html#Generator.pseudotype_sql">pseudotype_sql</a></dd>
|
|
<dd id="Redshift.Generator.objectidentifier_sql" class="function"><a href="../generator.html#Generator.objectidentifier_sql">objectidentifier_sql</a></dd>
|
|
<dd id="Redshift.Generator.onconflict_sql" class="function"><a href="../generator.html#Generator.onconflict_sql">onconflict_sql</a></dd>
|
|
<dd id="Redshift.Generator.returning_sql" class="function"><a href="../generator.html#Generator.returning_sql">returning_sql</a></dd>
|
|
<dd id="Redshift.Generator.rowformatdelimitedproperty_sql" class="function"><a href="../generator.html#Generator.rowformatdelimitedproperty_sql">rowformatdelimitedproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.withtablehint_sql" class="function"><a href="../generator.html#Generator.withtablehint_sql">withtablehint_sql</a></dd>
|
|
<dd id="Redshift.Generator.indextablehint_sql" class="function"><a href="../generator.html#Generator.indextablehint_sql">indextablehint_sql</a></dd>
|
|
<dd id="Redshift.Generator.historicaldata_sql" class="function"><a href="../generator.html#Generator.historicaldata_sql">historicaldata_sql</a></dd>
|
|
<dd id="Redshift.Generator.table_parts" class="function"><a href="../generator.html#Generator.table_parts">table_parts</a></dd>
|
|
<dd id="Redshift.Generator.table_sql" class="function"><a href="../generator.html#Generator.table_sql">table_sql</a></dd>
|
|
<dd id="Redshift.Generator.tablesample_sql" class="function"><a href="../generator.html#Generator.tablesample_sql">tablesample_sql</a></dd>
|
|
<dd id="Redshift.Generator.pivot_sql" class="function"><a href="../generator.html#Generator.pivot_sql">pivot_sql</a></dd>
|
|
<dd id="Redshift.Generator.version_sql" class="function"><a href="../generator.html#Generator.version_sql">version_sql</a></dd>
|
|
<dd id="Redshift.Generator.tuple_sql" class="function"><a href="../generator.html#Generator.tuple_sql">tuple_sql</a></dd>
|
|
<dd id="Redshift.Generator.update_sql" class="function"><a href="../generator.html#Generator.update_sql">update_sql</a></dd>
|
|
<dd id="Redshift.Generator.values_sql" class="function"><a href="../generator.html#Generator.values_sql">values_sql</a></dd>
|
|
<dd id="Redshift.Generator.var_sql" class="function"><a href="../generator.html#Generator.var_sql">var_sql</a></dd>
|
|
<dd id="Redshift.Generator.into_sql" class="function"><a href="../generator.html#Generator.into_sql">into_sql</a></dd>
|
|
<dd id="Redshift.Generator.from_sql" class="function"><a href="../generator.html#Generator.from_sql">from_sql</a></dd>
|
|
<dd id="Redshift.Generator.groupingsets_sql" class="function"><a href="../generator.html#Generator.groupingsets_sql">groupingsets_sql</a></dd>
|
|
<dd id="Redshift.Generator.rollup_sql" class="function"><a href="../generator.html#Generator.rollup_sql">rollup_sql</a></dd>
|
|
<dd id="Redshift.Generator.cube_sql" class="function"><a href="../generator.html#Generator.cube_sql">cube_sql</a></dd>
|
|
<dd id="Redshift.Generator.group_sql" class="function"><a href="../generator.html#Generator.group_sql">group_sql</a></dd>
|
|
<dd id="Redshift.Generator.having_sql" class="function"><a href="../generator.html#Generator.having_sql">having_sql</a></dd>
|
|
<dd id="Redshift.Generator.connect_sql" class="function"><a href="../generator.html#Generator.connect_sql">connect_sql</a></dd>
|
|
<dd id="Redshift.Generator.prior_sql" class="function"><a href="../generator.html#Generator.prior_sql">prior_sql</a></dd>
|
|
<dd id="Redshift.Generator.join_sql" class="function"><a href="../generator.html#Generator.join_sql">join_sql</a></dd>
|
|
<dd id="Redshift.Generator.lambda_sql" class="function"><a href="../generator.html#Generator.lambda_sql">lambda_sql</a></dd>
|
|
<dd id="Redshift.Generator.lateral_op" class="function"><a href="../generator.html#Generator.lateral_op">lateral_op</a></dd>
|
|
<dd id="Redshift.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd>
|
|
<dd id="Redshift.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd>
|
|
<dd id="Redshift.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd>
|
|
<dd id="Redshift.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd>
|
|
<dd id="Redshift.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd>
|
|
<dd id="Redshift.Generator.pragma_sql" class="function"><a href="../generator.html#Generator.pragma_sql">pragma_sql</a></dd>
|
|
<dd id="Redshift.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd>
|
|
<dd id="Redshift.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd>
|
|
<dd id="Redshift.Generator.escape_str" class="function"><a href="../generator.html#Generator.escape_str">escape_str</a></dd>
|
|
<dd id="Redshift.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd>
|
|
<dd id="Redshift.Generator.null_sql" class="function"><a href="../generator.html#Generator.null_sql">null_sql</a></dd>
|
|
<dd id="Redshift.Generator.boolean_sql" class="function"><a href="../generator.html#Generator.boolean_sql">boolean_sql</a></dd>
|
|
<dd id="Redshift.Generator.order_sql" class="function"><a href="../generator.html#Generator.order_sql">order_sql</a></dd>
|
|
<dd id="Redshift.Generator.withfill_sql" class="function"><a href="../generator.html#Generator.withfill_sql">withfill_sql</a></dd>
|
|
<dd id="Redshift.Generator.cluster_sql" class="function"><a href="../generator.html#Generator.cluster_sql">cluster_sql</a></dd>
|
|
<dd id="Redshift.Generator.distribute_sql" class="function"><a href="../generator.html#Generator.distribute_sql">distribute_sql</a></dd>
|
|
<dd id="Redshift.Generator.sort_sql" class="function"><a href="../generator.html#Generator.sort_sql">sort_sql</a></dd>
|
|
<dd id="Redshift.Generator.ordered_sql" class="function"><a href="../generator.html#Generator.ordered_sql">ordered_sql</a></dd>
|
|
<dd id="Redshift.Generator.matchrecognizemeasure_sql" class="function"><a href="../generator.html#Generator.matchrecognizemeasure_sql">matchrecognizemeasure_sql</a></dd>
|
|
<dd id="Redshift.Generator.matchrecognize_sql" class="function"><a href="../generator.html#Generator.matchrecognize_sql">matchrecognize_sql</a></dd>
|
|
<dd id="Redshift.Generator.query_modifiers" class="function"><a href="../generator.html#Generator.query_modifiers">query_modifiers</a></dd>
|
|
<dd id="Redshift.Generator.options_modifier" class="function"><a href="../generator.html#Generator.options_modifier">options_modifier</a></dd>
|
|
<dd id="Redshift.Generator.queryoption_sql" class="function"><a href="../generator.html#Generator.queryoption_sql">queryoption_sql</a></dd>
|
|
<dd id="Redshift.Generator.offset_limit_modifiers" class="function"><a href="../generator.html#Generator.offset_limit_modifiers">offset_limit_modifiers</a></dd>
|
|
<dd id="Redshift.Generator.after_limit_modifiers" class="function"><a href="../generator.html#Generator.after_limit_modifiers">after_limit_modifiers</a></dd>
|
|
<dd id="Redshift.Generator.select_sql" class="function"><a href="../generator.html#Generator.select_sql">select_sql</a></dd>
|
|
<dd id="Redshift.Generator.schema_sql" class="function"><a href="../generator.html#Generator.schema_sql">schema_sql</a></dd>
|
|
<dd id="Redshift.Generator.schema_columns_sql" class="function"><a href="../generator.html#Generator.schema_columns_sql">schema_columns_sql</a></dd>
|
|
<dd id="Redshift.Generator.star_sql" class="function"><a href="../generator.html#Generator.star_sql">star_sql</a></dd>
|
|
<dd id="Redshift.Generator.parameter_sql" class="function"><a href="../generator.html#Generator.parameter_sql">parameter_sql</a></dd>
|
|
<dd id="Redshift.Generator.sessionparameter_sql" class="function"><a href="../generator.html#Generator.sessionparameter_sql">sessionparameter_sql</a></dd>
|
|
<dd id="Redshift.Generator.placeholder_sql" class="function"><a href="../generator.html#Generator.placeholder_sql">placeholder_sql</a></dd>
|
|
<dd id="Redshift.Generator.subquery_sql" class="function"><a href="../generator.html#Generator.subquery_sql">subquery_sql</a></dd>
|
|
<dd id="Redshift.Generator.qualify_sql" class="function"><a href="../generator.html#Generator.qualify_sql">qualify_sql</a></dd>
|
|
<dd id="Redshift.Generator.prewhere_sql" class="function"><a href="../generator.html#Generator.prewhere_sql">prewhere_sql</a></dd>
|
|
<dd id="Redshift.Generator.where_sql" class="function"><a href="../generator.html#Generator.where_sql">where_sql</a></dd>
|
|
<dd id="Redshift.Generator.window_sql" class="function"><a href="../generator.html#Generator.window_sql">window_sql</a></dd>
|
|
<dd id="Redshift.Generator.partition_by_sql" class="function"><a href="../generator.html#Generator.partition_by_sql">partition_by_sql</a></dd>
|
|
<dd id="Redshift.Generator.windowspec_sql" class="function"><a href="../generator.html#Generator.windowspec_sql">windowspec_sql</a></dd>
|
|
<dd id="Redshift.Generator.withingroup_sql" class="function"><a href="../generator.html#Generator.withingroup_sql">withingroup_sql</a></dd>
|
|
<dd id="Redshift.Generator.between_sql" class="function"><a href="../generator.html#Generator.between_sql">between_sql</a></dd>
|
|
<dd id="Redshift.Generator.bracket_offset_expressions" class="function"><a href="../generator.html#Generator.bracket_offset_expressions">bracket_offset_expressions</a></dd>
|
|
<dd id="Redshift.Generator.all_sql" class="function"><a href="../generator.html#Generator.all_sql">all_sql</a></dd>
|
|
<dd id="Redshift.Generator.any_sql" class="function"><a href="../generator.html#Generator.any_sql">any_sql</a></dd>
|
|
<dd id="Redshift.Generator.exists_sql" class="function"><a href="../generator.html#Generator.exists_sql">exists_sql</a></dd>
|
|
<dd id="Redshift.Generator.case_sql" class="function"><a href="../generator.html#Generator.case_sql">case_sql</a></dd>
|
|
<dd id="Redshift.Generator.constraint_sql" class="function"><a href="../generator.html#Generator.constraint_sql">constraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.nextvaluefor_sql" class="function"><a href="../generator.html#Generator.nextvaluefor_sql">nextvaluefor_sql</a></dd>
|
|
<dd id="Redshift.Generator.extract_sql" class="function"><a href="../generator.html#Generator.extract_sql">extract_sql</a></dd>
|
|
<dd id="Redshift.Generator.trim_sql" class="function"><a href="../generator.html#Generator.trim_sql">trim_sql</a></dd>
|
|
<dd id="Redshift.Generator.convert_concat_args" class="function"><a href="../generator.html#Generator.convert_concat_args">convert_concat_args</a></dd>
|
|
<dd id="Redshift.Generator.concat_sql" class="function"><a href="../generator.html#Generator.concat_sql">concat_sql</a></dd>
|
|
<dd id="Redshift.Generator.concatws_sql" class="function"><a href="../generator.html#Generator.concatws_sql">concatws_sql</a></dd>
|
|
<dd id="Redshift.Generator.check_sql" class="function"><a href="../generator.html#Generator.check_sql">check_sql</a></dd>
|
|
<dd id="Redshift.Generator.foreignkey_sql" class="function"><a href="../generator.html#Generator.foreignkey_sql">foreignkey_sql</a></dd>
|
|
<dd id="Redshift.Generator.primarykey_sql" class="function"><a href="../generator.html#Generator.primarykey_sql">primarykey_sql</a></dd>
|
|
<dd id="Redshift.Generator.if_sql" class="function"><a href="../generator.html#Generator.if_sql">if_sql</a></dd>
|
|
<dd id="Redshift.Generator.jsonkeyvalue_sql" class="function"><a href="../generator.html#Generator.jsonkeyvalue_sql">jsonkeyvalue_sql</a></dd>
|
|
<dd id="Redshift.Generator.jsonpath_sql" class="function"><a href="../generator.html#Generator.jsonpath_sql">jsonpath_sql</a></dd>
|
|
<dd id="Redshift.Generator.json_path_part" class="function"><a href="../generator.html#Generator.json_path_part">json_path_part</a></dd>
|
|
<dd id="Redshift.Generator.formatjson_sql" class="function"><a href="../generator.html#Generator.formatjson_sql">formatjson_sql</a></dd>
|
|
<dd id="Redshift.Generator.jsonobject_sql" class="function"><a href="../generator.html#Generator.jsonobject_sql">jsonobject_sql</a></dd>
|
|
<dd id="Redshift.Generator.jsonobjectagg_sql" class="function"><a href="../generator.html#Generator.jsonobjectagg_sql">jsonobjectagg_sql</a></dd>
|
|
<dd id="Redshift.Generator.jsonarray_sql" class="function"><a href="../generator.html#Generator.jsonarray_sql">jsonarray_sql</a></dd>
|
|
<dd id="Redshift.Generator.jsonarrayagg_sql" class="function"><a href="../generator.html#Generator.jsonarrayagg_sql">jsonarrayagg_sql</a></dd>
|
|
<dd id="Redshift.Generator.jsoncolumndef_sql" class="function"><a href="../generator.html#Generator.jsoncolumndef_sql">jsoncolumndef_sql</a></dd>
|
|
<dd id="Redshift.Generator.jsonschema_sql" class="function"><a href="../generator.html#Generator.jsonschema_sql">jsonschema_sql</a></dd>
|
|
<dd id="Redshift.Generator.jsontable_sql" class="function"><a href="../generator.html#Generator.jsontable_sql">jsontable_sql</a></dd>
|
|
<dd id="Redshift.Generator.openjsoncolumndef_sql" class="function"><a href="../generator.html#Generator.openjsoncolumndef_sql">openjsoncolumndef_sql</a></dd>
|
|
<dd id="Redshift.Generator.openjson_sql" class="function"><a href="../generator.html#Generator.openjson_sql">openjson_sql</a></dd>
|
|
<dd id="Redshift.Generator.in_sql" class="function"><a href="../generator.html#Generator.in_sql">in_sql</a></dd>
|
|
<dd id="Redshift.Generator.in_unnest_op" class="function"><a href="../generator.html#Generator.in_unnest_op">in_unnest_op</a></dd>
|
|
<dd id="Redshift.Generator.interval_sql" class="function"><a href="../generator.html#Generator.interval_sql">interval_sql</a></dd>
|
|
<dd id="Redshift.Generator.return_sql" class="function"><a href="../generator.html#Generator.return_sql">return_sql</a></dd>
|
|
<dd id="Redshift.Generator.reference_sql" class="function"><a href="../generator.html#Generator.reference_sql">reference_sql</a></dd>
|
|
<dd id="Redshift.Generator.anonymous_sql" class="function"><a href="../generator.html#Generator.anonymous_sql">anonymous_sql</a></dd>
|
|
<dd id="Redshift.Generator.paren_sql" class="function"><a href="../generator.html#Generator.paren_sql">paren_sql</a></dd>
|
|
<dd id="Redshift.Generator.neg_sql" class="function"><a href="../generator.html#Generator.neg_sql">neg_sql</a></dd>
|
|
<dd id="Redshift.Generator.not_sql" class="function"><a href="../generator.html#Generator.not_sql">not_sql</a></dd>
|
|
<dd id="Redshift.Generator.alias_sql" class="function"><a href="../generator.html#Generator.alias_sql">alias_sql</a></dd>
|
|
<dd id="Redshift.Generator.pivotalias_sql" class="function"><a href="../generator.html#Generator.pivotalias_sql">pivotalias_sql</a></dd>
|
|
<dd id="Redshift.Generator.aliases_sql" class="function"><a href="../generator.html#Generator.aliases_sql">aliases_sql</a></dd>
|
|
<dd id="Redshift.Generator.atindex_sql" class="function"><a href="../generator.html#Generator.atindex_sql">atindex_sql</a></dd>
|
|
<dd id="Redshift.Generator.attimezone_sql" class="function"><a href="../generator.html#Generator.attimezone_sql">attimezone_sql</a></dd>
|
|
<dd id="Redshift.Generator.fromtimezone_sql" class="function"><a href="../generator.html#Generator.fromtimezone_sql">fromtimezone_sql</a></dd>
|
|
<dd id="Redshift.Generator.add_sql" class="function"><a href="../generator.html#Generator.add_sql">add_sql</a></dd>
|
|
<dd id="Redshift.Generator.and_sql" class="function"><a href="../generator.html#Generator.and_sql">and_sql</a></dd>
|
|
<dd id="Redshift.Generator.or_sql" class="function"><a href="../generator.html#Generator.or_sql">or_sql</a></dd>
|
|
<dd id="Redshift.Generator.xor_sql" class="function"><a href="../generator.html#Generator.xor_sql">xor_sql</a></dd>
|
|
<dd id="Redshift.Generator.connector_sql" class="function"><a href="../generator.html#Generator.connector_sql">connector_sql</a></dd>
|
|
<dd id="Redshift.Generator.bitwiseand_sql" class="function"><a href="../generator.html#Generator.bitwiseand_sql">bitwiseand_sql</a></dd>
|
|
<dd id="Redshift.Generator.bitwiseleftshift_sql" class="function"><a href="../generator.html#Generator.bitwiseleftshift_sql">bitwiseleftshift_sql</a></dd>
|
|
<dd id="Redshift.Generator.bitwisenot_sql" class="function"><a href="../generator.html#Generator.bitwisenot_sql">bitwisenot_sql</a></dd>
|
|
<dd id="Redshift.Generator.bitwiseor_sql" class="function"><a href="../generator.html#Generator.bitwiseor_sql">bitwiseor_sql</a></dd>
|
|
<dd id="Redshift.Generator.bitwiserightshift_sql" class="function"><a href="../generator.html#Generator.bitwiserightshift_sql">bitwiserightshift_sql</a></dd>
|
|
<dd id="Redshift.Generator.bitwisexor_sql" class="function"><a href="../generator.html#Generator.bitwisexor_sql">bitwisexor_sql</a></dd>
|
|
<dd id="Redshift.Generator.currentdate_sql" class="function"><a href="../generator.html#Generator.currentdate_sql">currentdate_sql</a></dd>
|
|
<dd id="Redshift.Generator.collate_sql" class="function"><a href="../generator.html#Generator.collate_sql">collate_sql</a></dd>
|
|
<dd id="Redshift.Generator.command_sql" class="function"><a href="../generator.html#Generator.command_sql">command_sql</a></dd>
|
|
<dd id="Redshift.Generator.comment_sql" class="function"><a href="../generator.html#Generator.comment_sql">comment_sql</a></dd>
|
|
<dd id="Redshift.Generator.mergetreettlaction_sql" class="function"><a href="../generator.html#Generator.mergetreettlaction_sql">mergetreettlaction_sql</a></dd>
|
|
<dd id="Redshift.Generator.mergetreettl_sql" class="function"><a href="../generator.html#Generator.mergetreettl_sql">mergetreettl_sql</a></dd>
|
|
<dd id="Redshift.Generator.transaction_sql" class="function"><a href="../generator.html#Generator.transaction_sql">transaction_sql</a></dd>
|
|
<dd id="Redshift.Generator.commit_sql" class="function"><a href="../generator.html#Generator.commit_sql">commit_sql</a></dd>
|
|
<dd id="Redshift.Generator.rollback_sql" class="function"><a href="../generator.html#Generator.rollback_sql">rollback_sql</a></dd>
|
|
<dd id="Redshift.Generator.altercolumn_sql" class="function"><a href="../generator.html#Generator.altercolumn_sql">altercolumn_sql</a></dd>
|
|
<dd id="Redshift.Generator.alterdiststyle_sql" class="function"><a href="../generator.html#Generator.alterdiststyle_sql">alterdiststyle_sql</a></dd>
|
|
<dd id="Redshift.Generator.altersortkey_sql" class="function"><a href="../generator.html#Generator.altersortkey_sql">altersortkey_sql</a></dd>
|
|
<dd id="Redshift.Generator.alterrename_sql" class="function"><a href="../generator.html#Generator.alterrename_sql">alterrename_sql</a></dd>
|
|
<dd id="Redshift.Generator.renamecolumn_sql" class="function"><a href="../generator.html#Generator.renamecolumn_sql">renamecolumn_sql</a></dd>
|
|
<dd id="Redshift.Generator.alter_sql" class="function"><a href="../generator.html#Generator.alter_sql">alter_sql</a></dd>
|
|
<dd id="Redshift.Generator.add_column_sql" class="function"><a href="../generator.html#Generator.add_column_sql">add_column_sql</a></dd>
|
|
<dd id="Redshift.Generator.droppartition_sql" class="function"><a href="../generator.html#Generator.droppartition_sql">droppartition_sql</a></dd>
|
|
<dd id="Redshift.Generator.addconstraint_sql" class="function"><a href="../generator.html#Generator.addconstraint_sql">addconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.distinct_sql" class="function"><a href="../generator.html#Generator.distinct_sql">distinct_sql</a></dd>
|
|
<dd id="Redshift.Generator.ignorenulls_sql" class="function"><a href="../generator.html#Generator.ignorenulls_sql">ignorenulls_sql</a></dd>
|
|
<dd id="Redshift.Generator.respectnulls_sql" class="function"><a href="../generator.html#Generator.respectnulls_sql">respectnulls_sql</a></dd>
|
|
<dd id="Redshift.Generator.havingmax_sql" class="function"><a href="../generator.html#Generator.havingmax_sql">havingmax_sql</a></dd>
|
|
<dd id="Redshift.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd>
|
|
<dd id="Redshift.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd>
|
|
<dd id="Redshift.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd>
|
|
<dd id="Redshift.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd>
|
|
<dd id="Redshift.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd>
|
|
<dd id="Redshift.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd>
|
|
<dd id="Redshift.Generator.eq_sql" class="function"><a href="../generator.html#Generator.eq_sql">eq_sql</a></dd>
|
|
<dd id="Redshift.Generator.propertyeq_sql" class="function"><a href="../generator.html#Generator.propertyeq_sql">propertyeq_sql</a></dd>
|
|
<dd id="Redshift.Generator.escape_sql" class="function"><a href="../generator.html#Generator.escape_sql">escape_sql</a></dd>
|
|
<dd id="Redshift.Generator.glob_sql" class="function"><a href="../generator.html#Generator.glob_sql">glob_sql</a></dd>
|
|
<dd id="Redshift.Generator.gt_sql" class="function"><a href="../generator.html#Generator.gt_sql">gt_sql</a></dd>
|
|
<dd id="Redshift.Generator.gte_sql" class="function"><a href="../generator.html#Generator.gte_sql">gte_sql</a></dd>
|
|
<dd id="Redshift.Generator.ilike_sql" class="function"><a href="../generator.html#Generator.ilike_sql">ilike_sql</a></dd>
|
|
<dd id="Redshift.Generator.ilikeany_sql" class="function"><a href="../generator.html#Generator.ilikeany_sql">ilikeany_sql</a></dd>
|
|
<dd id="Redshift.Generator.is_sql" class="function"><a href="../generator.html#Generator.is_sql">is_sql</a></dd>
|
|
<dd id="Redshift.Generator.like_sql" class="function"><a href="../generator.html#Generator.like_sql">like_sql</a></dd>
|
|
<dd id="Redshift.Generator.likeany_sql" class="function"><a href="../generator.html#Generator.likeany_sql">likeany_sql</a></dd>
|
|
<dd id="Redshift.Generator.similarto_sql" class="function"><a href="../generator.html#Generator.similarto_sql">similarto_sql</a></dd>
|
|
<dd id="Redshift.Generator.lt_sql" class="function"><a href="../generator.html#Generator.lt_sql">lt_sql</a></dd>
|
|
<dd id="Redshift.Generator.lte_sql" class="function"><a href="../generator.html#Generator.lte_sql">lte_sql</a></dd>
|
|
<dd id="Redshift.Generator.mod_sql" class="function"><a href="../generator.html#Generator.mod_sql">mod_sql</a></dd>
|
|
<dd id="Redshift.Generator.mul_sql" class="function"><a href="../generator.html#Generator.mul_sql">mul_sql</a></dd>
|
|
<dd id="Redshift.Generator.neq_sql" class="function"><a href="../generator.html#Generator.neq_sql">neq_sql</a></dd>
|
|
<dd id="Redshift.Generator.nullsafeeq_sql" class="function"><a href="../generator.html#Generator.nullsafeeq_sql">nullsafeeq_sql</a></dd>
|
|
<dd id="Redshift.Generator.nullsafeneq_sql" class="function"><a href="../generator.html#Generator.nullsafeneq_sql">nullsafeneq_sql</a></dd>
|
|
<dd id="Redshift.Generator.slice_sql" class="function"><a href="../generator.html#Generator.slice_sql">slice_sql</a></dd>
|
|
<dd id="Redshift.Generator.sub_sql" class="function"><a href="../generator.html#Generator.sub_sql">sub_sql</a></dd>
|
|
<dd id="Redshift.Generator.trycast_sql" class="function"><a href="../generator.html#Generator.trycast_sql">trycast_sql</a></dd>
|
|
<dd id="Redshift.Generator.try_sql" class="function"><a href="../generator.html#Generator.try_sql">try_sql</a></dd>
|
|
<dd id="Redshift.Generator.log_sql" class="function"><a href="../generator.html#Generator.log_sql">log_sql</a></dd>
|
|
<dd id="Redshift.Generator.use_sql" class="function"><a href="../generator.html#Generator.use_sql">use_sql</a></dd>
|
|
<dd id="Redshift.Generator.binary" class="function"><a href="../generator.html#Generator.binary">binary</a></dd>
|
|
<dd id="Redshift.Generator.function_fallback_sql" class="function"><a href="../generator.html#Generator.function_fallback_sql">function_fallback_sql</a></dd>
|
|
<dd id="Redshift.Generator.func" class="function"><a href="../generator.html#Generator.func">func</a></dd>
|
|
<dd id="Redshift.Generator.format_args" class="function"><a href="../generator.html#Generator.format_args">format_args</a></dd>
|
|
<dd id="Redshift.Generator.too_wide" class="function"><a href="../generator.html#Generator.too_wide">too_wide</a></dd>
|
|
<dd id="Redshift.Generator.format_time" class="function"><a href="../generator.html#Generator.format_time">format_time</a></dd>
|
|
<dd id="Redshift.Generator.expressions" class="function"><a href="../generator.html#Generator.expressions">expressions</a></dd>
|
|
<dd id="Redshift.Generator.op_expressions" class="function"><a href="../generator.html#Generator.op_expressions">op_expressions</a></dd>
|
|
<dd id="Redshift.Generator.naked_property" class="function"><a href="../generator.html#Generator.naked_property">naked_property</a></dd>
|
|
<dd id="Redshift.Generator.tag_sql" class="function"><a href="../generator.html#Generator.tag_sql">tag_sql</a></dd>
|
|
<dd id="Redshift.Generator.token_sql" class="function"><a href="../generator.html#Generator.token_sql">token_sql</a></dd>
|
|
<dd id="Redshift.Generator.userdefinedfunction_sql" class="function"><a href="../generator.html#Generator.userdefinedfunction_sql">userdefinedfunction_sql</a></dd>
|
|
<dd id="Redshift.Generator.joinhint_sql" class="function"><a href="../generator.html#Generator.joinhint_sql">joinhint_sql</a></dd>
|
|
<dd id="Redshift.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd>
|
|
<dd id="Redshift.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd>
|
|
<dd id="Redshift.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd>
|
|
<dd id="Redshift.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd>
|
|
<dd id="Redshift.Generator.tonumber_sql" class="function"><a href="../generator.html#Generator.tonumber_sql">tonumber_sql</a></dd>
|
|
<dd id="Redshift.Generator.dictproperty_sql" class="function"><a href="../generator.html#Generator.dictproperty_sql">dictproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.dictrange_sql" class="function"><a href="../generator.html#Generator.dictrange_sql">dictrange_sql</a></dd>
|
|
<dd id="Redshift.Generator.dictsubproperty_sql" class="function"><a href="../generator.html#Generator.dictsubproperty_sql">dictsubproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.duplicatekeyproperty_sql" class="function"><a href="../generator.html#Generator.duplicatekeyproperty_sql">duplicatekeyproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.distributedbyproperty_sql" class="function"><a href="../generator.html#Generator.distributedbyproperty_sql">distributedbyproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.oncluster_sql" class="function"><a href="../generator.html#Generator.oncluster_sql">oncluster_sql</a></dd>
|
|
<dd id="Redshift.Generator.clusteredbyproperty_sql" class="function"><a href="../generator.html#Generator.clusteredbyproperty_sql">clusteredbyproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.anyvalue_sql" class="function"><a href="../generator.html#Generator.anyvalue_sql">anyvalue_sql</a></dd>
|
|
<dd id="Redshift.Generator.querytransform_sql" class="function"><a href="../generator.html#Generator.querytransform_sql">querytransform_sql</a></dd>
|
|
<dd id="Redshift.Generator.indexconstraintoption_sql" class="function"><a href="../generator.html#Generator.indexconstraintoption_sql">indexconstraintoption_sql</a></dd>
|
|
<dd id="Redshift.Generator.checkcolumnconstraint_sql" class="function"><a href="../generator.html#Generator.checkcolumnconstraint_sql">checkcolumnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.indexcolumnconstraint_sql" class="function"><a href="../generator.html#Generator.indexcolumnconstraint_sql">indexcolumnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.nvl2_sql" class="function"><a href="../generator.html#Generator.nvl2_sql">nvl2_sql</a></dd>
|
|
<dd id="Redshift.Generator.comprehension_sql" class="function"><a href="../generator.html#Generator.comprehension_sql">comprehension_sql</a></dd>
|
|
<dd id="Redshift.Generator.columnprefix_sql" class="function"><a href="../generator.html#Generator.columnprefix_sql">columnprefix_sql</a></dd>
|
|
<dd id="Redshift.Generator.opclass_sql" class="function"><a href="../generator.html#Generator.opclass_sql">opclass_sql</a></dd>
|
|
<dd id="Redshift.Generator.predict_sql" class="function"><a href="../generator.html#Generator.predict_sql">predict_sql</a></dd>
|
|
<dd id="Redshift.Generator.forin_sql" class="function"><a href="../generator.html#Generator.forin_sql">forin_sql</a></dd>
|
|
<dd id="Redshift.Generator.refresh_sql" class="function"><a href="../generator.html#Generator.refresh_sql">refresh_sql</a></dd>
|
|
<dd id="Redshift.Generator.toarray_sql" class="function"><a href="../generator.html#Generator.toarray_sql">toarray_sql</a></dd>
|
|
<dd id="Redshift.Generator.tsordstotime_sql" class="function"><a href="../generator.html#Generator.tsordstotime_sql">tsordstotime_sql</a></dd>
|
|
<dd id="Redshift.Generator.tsordstotimestamp_sql" class="function"><a href="../generator.html#Generator.tsordstotimestamp_sql">tsordstotimestamp_sql</a></dd>
|
|
<dd id="Redshift.Generator.tsordstodatetime_sql" class="function"><a href="../generator.html#Generator.tsordstodatetime_sql">tsordstodatetime_sql</a></dd>
|
|
<dd id="Redshift.Generator.tsordstodate_sql" class="function"><a href="../generator.html#Generator.tsordstodate_sql">tsordstodate_sql</a></dd>
|
|
<dd id="Redshift.Generator.unixdate_sql" class="function"><a href="../generator.html#Generator.unixdate_sql">unixdate_sql</a></dd>
|
|
<dd id="Redshift.Generator.lastday_sql" class="function"><a href="../generator.html#Generator.lastday_sql">lastday_sql</a></dd>
|
|
<dd id="Redshift.Generator.dateadd_sql" class="function"><a href="../generator.html#Generator.dateadd_sql">dateadd_sql</a></dd>
|
|
<dd id="Redshift.Generator.arrayany_sql" class="function"><a href="../generator.html#Generator.arrayany_sql">arrayany_sql</a></dd>
|
|
<dd id="Redshift.Generator.struct_sql" class="function"><a href="../generator.html#Generator.struct_sql">struct_sql</a></dd>
|
|
<dd id="Redshift.Generator.partitionrange_sql" class="function"><a href="../generator.html#Generator.partitionrange_sql">partitionrange_sql</a></dd>
|
|
<dd id="Redshift.Generator.truncatetable_sql" class="function"><a href="../generator.html#Generator.truncatetable_sql">truncatetable_sql</a></dd>
|
|
<dd id="Redshift.Generator.convert_sql" class="function"><a href="../generator.html#Generator.convert_sql">convert_sql</a></dd>
|
|
<dd id="Redshift.Generator.copyparameter_sql" class="function"><a href="../generator.html#Generator.copyparameter_sql">copyparameter_sql</a></dd>
|
|
<dd id="Redshift.Generator.credentials_sql" class="function"><a href="../generator.html#Generator.credentials_sql">credentials_sql</a></dd>
|
|
<dd id="Redshift.Generator.copy_sql" class="function"><a href="../generator.html#Generator.copy_sql">copy_sql</a></dd>
|
|
<dd id="Redshift.Generator.semicolon_sql" class="function"><a href="../generator.html#Generator.semicolon_sql">semicolon_sql</a></dd>
|
|
<dd id="Redshift.Generator.datadeletionproperty_sql" class="function"><a href="../generator.html#Generator.datadeletionproperty_sql">datadeletionproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.maskingpolicycolumnconstraint_sql" class="function"><a href="../generator.html#Generator.maskingpolicycolumnconstraint_sql">maskingpolicycolumnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.gapfill_sql" class="function"><a href="../generator.html#Generator.gapfill_sql">gapfill_sql</a></dd>
|
|
<dd id="Redshift.Generator.scope_resolution" class="function"><a href="../generator.html#Generator.scope_resolution">scope_resolution</a></dd>
|
|
<dd id="Redshift.Generator.scoperesolution_sql" class="function"><a href="../generator.html#Generator.scoperesolution_sql">scoperesolution_sql</a></dd>
|
|
<dd id="Redshift.Generator.parsejson_sql" class="function"><a href="../generator.html#Generator.parsejson_sql">parsejson_sql</a></dd>
|
|
<dd id="Redshift.Generator.rand_sql" class="function"><a href="../generator.html#Generator.rand_sql">rand_sql</a></dd>
|
|
<dd id="Redshift.Generator.changes_sql" class="function"><a href="../generator.html#Generator.changes_sql">changes_sql</a></dd>
|
|
<dd id="Redshift.Generator.pad_sql" class="function"><a href="../generator.html#Generator.pad_sql">pad_sql</a></dd>
|
|
<dd id="Redshift.Generator.summarize_sql" class="function"><a href="../generator.html#Generator.summarize_sql">summarize_sql</a></dd>
|
|
<dd id="Redshift.Generator.explodinggenerateseries_sql" class="function"><a href="../generator.html#Generator.explodinggenerateseries_sql">explodinggenerateseries_sql</a></dd>
|
|
<dd id="Redshift.Generator.arrayconcat_sql" class="function"><a href="../generator.html#Generator.arrayconcat_sql">arrayconcat_sql</a></dd>
|
|
<dd id="Redshift.Generator.converttimezone_sql" class="function"><a href="../generator.html#Generator.converttimezone_sql">converttimezone_sql</a></dd>
|
|
<dd id="Redshift.Generator.json_sql" class="function"><a href="../generator.html#Generator.json_sql">json_sql</a></dd>
|
|
<dd id="Redshift.Generator.jsonvalue_sql" class="function"><a href="../generator.html#Generator.jsonvalue_sql">jsonvalue_sql</a></dd>
|
|
<dd id="Redshift.Generator.conditionalinsert_sql" class="function"><a href="../generator.html#Generator.conditionalinsert_sql">conditionalinsert_sql</a></dd>
|
|
<dd id="Redshift.Generator.multitableinserts_sql" class="function"><a href="../generator.html#Generator.multitableinserts_sql">multitableinserts_sql</a></dd>
|
|
<dd id="Redshift.Generator.oncondition_sql" class="function"><a href="../generator.html#Generator.oncondition_sql">oncondition_sql</a></dd>
|
|
<dd id="Redshift.Generator.jsonexists_sql" class="function"><a href="../generator.html#Generator.jsonexists_sql">jsonexists_sql</a></dd>
|
|
<dd id="Redshift.Generator.arrayagg_sql" class="function"><a href="../generator.html#Generator.arrayagg_sql">arrayagg_sql</a></dd>
|
|
<dd id="Redshift.Generator.apply_sql" class="function"><a href="../generator.html#Generator.apply_sql">apply_sql</a></dd>
|
|
<dd id="Redshift.Generator.grant_sql" class="function"><a href="../generator.html#Generator.grant_sql">grant_sql</a></dd>
|
|
<dd id="Redshift.Generator.grantprivilege_sql" class="function"><a href="../generator.html#Generator.grantprivilege_sql">grantprivilege_sql</a></dd>
|
|
<dd id="Redshift.Generator.grantprincipal_sql" class="function"><a href="../generator.html#Generator.grantprincipal_sql">grantprincipal_sql</a></dd>
|
|
<dd id="Redshift.Generator.columns_sql" class="function"><a href="../generator.html#Generator.columns_sql">columns_sql</a></dd>
|
|
<dd id="Redshift.Generator.overlay_sql" class="function"><a href="../generator.html#Generator.overlay_sql">overlay_sql</a></dd>
|
|
<dd id="Redshift.Generator.todouble_sql" class="function"><a href="../generator.html#Generator.todouble_sql">todouble_sql</a></dd>
|
|
<dd id="Redshift.Generator.string_sql" class="function"><a href="../generator.html#Generator.string_sql">string_sql</a></dd>
|
|
<dd id="Redshift.Generator.median_sql" class="function"><a href="../generator.html#Generator.median_sql">median_sql</a></dd>
|
|
<dd id="Redshift.Generator.overflowtruncatebehavior_sql" class="function"><a href="../generator.html#Generator.overflowtruncatebehavior_sql">overflowtruncatebehavior_sql</a></dd>
|
|
<dd id="Redshift.Generator.unixseconds_sql" class="function"><a href="../generator.html#Generator.unixseconds_sql">unixseconds_sql</a></dd>
|
|
<dd id="Redshift.Generator.arraysize_sql" class="function"><a href="../generator.html#Generator.arraysize_sql">arraysize_sql</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="postgres.html#Postgres.Generator">sqlglot.dialects.postgres.Postgres.Generator</a></dt>
|
|
<dd id="Redshift.Generator.SINGLE_STRING_INTERVAL" class="variable"><a href="postgres.html#Postgres.Generator.SINGLE_STRING_INTERVAL">SINGLE_STRING_INTERVAL</a></dd>
|
|
<dd id="Redshift.Generator.RENAME_TABLE_WITH_DB" class="variable"><a href="postgres.html#Postgres.Generator.RENAME_TABLE_WITH_DB">RENAME_TABLE_WITH_DB</a></dd>
|
|
<dd id="Redshift.Generator.JOIN_HINTS" class="variable"><a href="postgres.html#Postgres.Generator.JOIN_HINTS">JOIN_HINTS</a></dd>
|
|
<dd id="Redshift.Generator.TABLE_HINTS" class="variable"><a href="postgres.html#Postgres.Generator.TABLE_HINTS">TABLE_HINTS</a></dd>
|
|
<dd id="Redshift.Generator.PARAMETER_TOKEN" class="variable"><a href="postgres.html#Postgres.Generator.PARAMETER_TOKEN">PARAMETER_TOKEN</a></dd>
|
|
<dd id="Redshift.Generator.TABLESAMPLE_SIZE_IS_ROWS" class="variable"><a href="postgres.html#Postgres.Generator.TABLESAMPLE_SIZE_IS_ROWS">TABLESAMPLE_SIZE_IS_ROWS</a></dd>
|
|
<dd id="Redshift.Generator.TABLESAMPLE_SEED_KEYWORD" class="variable"><a href="postgres.html#Postgres.Generator.TABLESAMPLE_SEED_KEYWORD">TABLESAMPLE_SEED_KEYWORD</a></dd>
|
|
<dd id="Redshift.Generator.SUPPORTS_SELECT_INTO" class="variable"><a href="postgres.html#Postgres.Generator.SUPPORTS_SELECT_INTO">SUPPORTS_SELECT_INTO</a></dd>
|
|
<dd id="Redshift.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION" class="variable"><a href="postgres.html#Postgres.Generator.JSON_TYPE_REQUIRED_FOR_EXTRACTION">JSON_TYPE_REQUIRED_FOR_EXTRACTION</a></dd>
|
|
<dd id="Redshift.Generator.SUPPORTS_UNLOGGED_TABLES" class="variable"><a href="postgres.html#Postgres.Generator.SUPPORTS_UNLOGGED_TABLES">SUPPORTS_UNLOGGED_TABLES</a></dd>
|
|
<dd id="Redshift.Generator.LIKE_PROPERTY_INSIDE_SCHEMA" class="variable"><a href="postgres.html#Postgres.Generator.LIKE_PROPERTY_INSIDE_SCHEMA">LIKE_PROPERTY_INSIDE_SCHEMA</a></dd>
|
|
<dd id="Redshift.Generator.COPY_HAS_INTO_KEYWORD" class="variable"><a href="postgres.html#Postgres.Generator.COPY_HAS_INTO_KEYWORD">COPY_HAS_INTO_KEYWORD</a></dd>
|
|
<dd id="Redshift.Generator.ARRAY_SIZE_DIM_REQUIRED" class="variable"><a href="postgres.html#Postgres.Generator.ARRAY_SIZE_DIM_REQUIRED">ARRAY_SIZE_DIM_REQUIRED</a></dd>
|
|
<dd id="Redshift.Generator.SUPPORTED_JSON_PATH_PARTS" class="variable"><a href="postgres.html#Postgres.Generator.SUPPORTED_JSON_PATH_PARTS">SUPPORTED_JSON_PATH_PARTS</a></dd>
|
|
<dd id="Redshift.Generator.PROPERTIES_LOCATION" class="variable"><a href="postgres.html#Postgres.Generator.PROPERTIES_LOCATION">PROPERTIES_LOCATION</a></dd>
|
|
<dd id="Redshift.Generator.schemacommentproperty_sql" class="function"><a href="postgres.html#Postgres.Generator.schemacommentproperty_sql">schemacommentproperty_sql</a></dd>
|
|
<dd id="Redshift.Generator.commentcolumnconstraint_sql" class="function"><a href="postgres.html#Postgres.Generator.commentcolumnconstraint_sql">commentcolumnconstraint_sql</a></dd>
|
|
<dd id="Redshift.Generator.bracket_sql" class="function"><a href="postgres.html#Postgres.Generator.bracket_sql">bracket_sql</a></dd>
|
|
<dd id="Redshift.Generator.matchagainst_sql" class="function"><a href="postgres.html#Postgres.Generator.matchagainst_sql">matchagainst_sql</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</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> |